﻿	
	/**
     * 创建一个可以点选地图的控件    
     */
    function KSearchPointControl()
    { 
        this.loaded = false; 
        this.left=KConfig.left;
        this.top=KConfig.top;
        this.right=KConfig.right;      
        this.bottom=KConfig.bottom;
    }

    /**
     * 点选对象初始化
     */
    var KSearchPointControl_initialize = function(mapObject)
    {
        var controlObject = this;
        if (controlObject.Map && mapObject == controlObject.Map)
        {
            return;
        }
        controlObject.Map = mapObject;
        controlObject.loaded = true;
    }

	/**
	 * 启动点选工具
	 */
    var KSearchPointControl_startup= function()
    {
        var controlObject = this;        
        if (!controlObject.loaded) return;
        
		if (controlObject.Map.currTool!=null)		
        {
			controlObject.Map.currTool.depose();				 
		}
				
		controlObject.Map.currTool=this;		
		controlObject.Map.clearMouseScroll();	//清除鼠标滚动
		
		
		KBase.setCursorStyle(controlObject.Map.mapsDiv, "default");        
        controlObject.mapClickListener = KEvent.addListener(controlObject.Map, "click", controlObject, this.onMapClick);        
        //controlObject.mapClickListener = KEvent.addListener(controlObject.Map, "click", controlObject, this.onMapClick); 
    }    
    
    /**
	 * 地图鼠标单击事件
	 */
    var KSearchPointControl_onMapClick = function(position)
    {        
        var controlObject = this;        
        KEvent.trigger(controlObject.Map, "searchpoint", [position[0]-controlObject.left,position[1]-controlObject.top,position[0]+controlObject.right,position[1]+controlObject.bottom,1]);	        
    }
    
    /**
     * 设置响应函数
     */
    var KSearchPointControl_setResponseFunction  = function(functionName)
    {
		var controlObject = this;
		if (controlObject.searchPointListener)	KEvent.removeListener(controlObject.searchPointListener);
		controlObject.searchPointListener=KEvent.addListener(map, "searchpoint",functionName);
    }
    
    /**
     * 设置误差边界
     */
    var KSearchPointControl_setBorderValue = function(left,top,right,bottom)
    {
		var controlObject = this;
		controlObject.left=left;
		controlObject.top=top;
		controlObject.right=right;
		controlObject.bottom=bottom;
		
    }
   
    
    /**
	 * 获取控件对象
	 */
    var KSearchPointControl_getObject = function()
    {
        return this.zoomInObj;
    }    
    
    
    /**
	 * 控件释放
	 */
    var KSearchPointControl_depose = function()
    {
        var controlObject = this;        
        
        if (controlObject.mapClickListener)
        {
            KEvent.removeListener(controlObject.mapClickListener);
            controlObject.mapClickListener = null;
        }
        if (controlObject.searchPointListener)
        {
            KEvent.removeListener(controlObject.searchPointListener);
            controlObject.searchPointListener = null;
        }       
    }

	
    KConfig.defineClass("KSearchPointControl", KSearchPointControl);
    KConfig.defineFunction(KSearchPointControl, "initialize", KSearchPointControl_initialize);
    KConfig.defineFunction(KSearchPointControl, "startup", KSearchPointControl_startup);
    KConfig.defineFunction(KSearchPointControl, "setBorderValue", KSearchPointControl_setBorderValue);
    KConfig.defineFunction(KSearchPointControl, "setResponseFunction", KSearchPointControl_setResponseFunction);
    
    KConfig.defineFunction(KSearchPointControl, "onMapClick", KSearchPointControl_onMapClick);  
    KConfig.defineFunction(KSearchPointControl, "getObject", KSearchPointControl_getObject);
	KConfig.defineFunction(KSearchPointControl, "depose", KSearchPointControl_depose);
	
	
	