﻿/*
*/

var map=null;	//very important地图
var rect=new LTRect();
var control=null;
var markcontrol=null;
var maxsearchboundradius=500;//标点搜索最大范围半径3千米
var searchmark=new LTMarker();
var resultmarkarray=new Array();
var pointsearch=null;
//-----------------------------------------------------------------

//功能说明:用户每次拉框操作完成之后执行的操作
//参数说明:bounds是代表用户拉框选择的区域的范围
//调用:
//被调用:   
function RectUp(bounds)
{
//alert(bounds.getXmin());
    //区域中心点保存到隐藏域中作为查询条件
	var str=bounds.getXmin()+","+bounds.getYmax()+";"+bounds.getXmax()+","+bounds.getYmin()+";";
	var tosave=document.getElementById("hf_searchpoint");
	tosave.value=str;
	var type=document.getElementById("hf_searchtype");
	type.value="0";
	//根据指定的范围绘制一个显示所选区域的矩形
	rect.setBounds(bounds);
	map.addOverLay(rect);
	control.btnClick();
	map.setMapCursor("move");
	document.getElementById("btn_Search").click();
	//alert(str);
}
//功能说明:用户每次标点操作完成之后执行的操作
//参数说明:point是代表用户拉框选择的区域的范围
function MarkUp(point)
{
    var xmin=point.getLongitude()-maxsearchboundradius;//
    var xmax=point.getLongitude()+maxsearchboundradius;
    var ymin=point.getLatitude()-maxsearchboundradius;//经度
    var ymax=point.getLatitude()+maxsearchboundradius;//经度
    var str= xmin+","+ymax+";"+xmax+","+ymin+";";
    var tosave=document.getElementById("hf_searchpoint");
	tosave.value=str;
	var stype=document.getElementById("hf_searchtype");
	stype.value="1";
	//markcontrol.btnClick();
	//创建标注
    //pointsearch=new LTMarker(point);
    //添加标注到地图 
   // map.addOverLay(pointsearch); 
	//alert(str);
	document.getElementById("btn_Search").click();
	//document.execCommand('Refresh'); 
    //BindDataList();

}
function InitMap()
{
    //载入地图
    map=new LTMaps("myMap");
    map.centerAndZoom(centerpoint,3);     //定位蜀山区中心 

    map.addControl(new LTStandMapControl());
    control = new LTZoomSearchControl();	//建立新的拉框查找控件
    control.setVisible(false);               //隐藏按钮,用btn_newdraw模拟按钮
    map.addControl(control);			//添加控件到地图
    LTEvent.addListener(control,"mouseup",RectUp);	//设置在用户拉框完成之后执行doit函数
    var icon=new LTIcon("http://api.51ditu.com/img/ezmarker/tack.gif",[78,39],[39,39]);
    markcontrol=new LTMarkControl(icon);//,"mouse073.cur",false);
    markcontrol.setVisible(false);
    map.addControl(markcontrol);
    LTEvent.addListener(markcontrol,"mouseup",MarkUp);
    
    //判断地图是否有搜索条件
    var hfpoints=document.getElementById("hf_searchpoint");
    if(hfpoints.value!="")
    {
        //设置了拉框,则用LTRect标出矩形区域
        ShowSearchRect(hfpoints.value);

    }
          
    //判断是否有搜索结果要显示

    var hfallpoints=document.getElementById("hf_result");
    if(hfallpoints.value!="")
    {          
        ShowSearchResult(hfallpoints.value);
    }
    map.setMapCursor("move");
    var openbtn=document.getElementById("btn_map_open");
    if(openbtn!=null)
    {
        var btntxt=document.getElementById("hf_mapflag");
        if(btntxt.value=="true")
        {       
            openMap();
        //openbtn.style.display='none';//隐藏打开地图按钮         
        }
        else
        {
             closeMap()
        //openbtn.style.display='block';
        }
    }
    
}
//功能说明：显示搜索框
//参数说明：centerpoint矩形区域
function ShowSearchRect(centerpoint)
{
    var stype=document.getElementById("hf_searchtype");
   
    var str=centerpoint;                ///设置了拉框,则用LTRect标出矩形区域

   
    var j=0;
    var n=str.indexOf(",",j);              //截取拉框区域四个顶点

    var xmin=str.substring(j,n);
    j=n+1;
    n=str.indexOf(";",j);
    var ymax=str.substring(j,n);
    j=n+1;
    n=str.indexOf(",",j);
    var xmax=str.substring(j,n);
    j=n+1;
    n=str.indexOf(";",j);
    var ymin=str.substring(j,n);
    var x=(new Number(xmin)+new Number(xmax))/2;
    var y=(new Number(ymin)+new Number(ymax))/2;
    var p=new LTPoint(x,y);
    var boundforsearch=new LTBounds(xmin,ymin,xmax,ymax);
    
    if(stype.value=="0")
    {
    //创建矩形框
        rect.setBounds(boundforsearch); 
        map.addOverLay(rect);
    }
    else
    {
        var icon=new LTIcon("http://api.51ditu.com/img/ezmarker/tack.gif",[78,39],[39,39]);        
        searchmark=new LTMarker(p,icon);
        map.addOverLay(searchmark);
    }
    map.moveToCenter(p);
}
//功能说明：显示搜索结果
//参数说明：result搜索结果
function ShowSearchResult(result)
{
    var str=eval('('+result+')');//搜索结果,格式为:"经度*纬度@到达方法&"
    //alert(str);
    var x=0;
    var y=0;
    for(var i=0;i<str.length;i++)
    {
        x=str[i].gps_L;
        y=str[i].gps_W;
        var name=str[i].CmyName;
        var addr=str[i].ArriveMethod;
        var enterpid=str[i].CmyID;
        var url=str[i].url;
        //创建标注
        var iconname="../Images/searchmark"+i+".gif";
        var markicon=new LTIcon(iconname,[44,37],[12,12]);//创建一个图标
        var marks=new LTMarker(new LTPoint(new Number(x),new Number(y)),markicon);
        
        //为标注创建信息窗口
        var win=addInfoWin( marks ,name,addr,enterpid ,url);
        //添加标注到地图 
        map.addOverLay(marks);
        resultmarkarray.push([marks,win]);
    }
    map.centerAndZoom(new LTPoint(x,y),map.getCurrentZoom()); 
//    var hfpoints=document.getElementById("hf_searchpoint");    
//      hfpoints.value="";
}


//功能说明:模拟拉框控件的按钮事件 清除地图上的标签并设置开关状态
//参数说明:
function SetSearchRect()
{ 

    var point=map.getCenterPoint();
    if(point.getLongitude()==0)//+","+point.getLatitude()+","+map.getCurrentZoom());
    {
    alert("当前位置下无地图，自动定位到蜀山区");
    map.centerAndZoom(centerpoint,3);     //定位蜀山区中心
    } 
      var hfpoints=document.getElementById("hf_searchpoint");    
      hfpoints.value="";
      document.getElementById("hf_result").value="";
      resultmarkarray.length=0;
      //alert(hfpoints.value);
      map.removeOverLay(searchmark,false);
      map.removeOverLay(rect,false);
      control.btnClick();
      map.setMapCursor("crosshair");
  
}

//功能说明:模拟标点控件的按钮事件 清除地图上的标签并设置开关状态
//参数说明:
function SetSearchPoint()
{
    var point=map.getCenterPoint();
    if(point.getLongitude()==0)//+","+point.getLatitude()+","+map.getCurrentZoom());
    {
    alert("当前位置下无地图，自动定位到蜀山区");
    map.centerAndZoom(centerpoint,3);     //定位蜀山区中心
    }
     var hfpoints=document.getElementById("hf_searchpoint");    
      hfpoints.value="";
      document.getElementById("hf_result").value="";
      resultmarkarray.length=0;
      //alert(hfpoints.value);
      map.removeOverLay(rect,false);
      map.removeOverLay(searchmark,false);
      markcontrol.btnClick();
      map.setMapCursor("hand");
 
    
}
//功能说明:使地图跟随鼠标滚动移动,浮动div
//参数说明:
//调用:
//被调用:页面   
//网上搜的整体 无注释   
var lastScrollY=0;
var percent=0;
function heartBeat(){ 

        var mapshow=document.getElementById("hf_mapflag");//地图打开状态
       if(mapshow!=null)
       {
        if(mapshow.value=="true")//打开
        {
        var diffY;
        if (document.documentElement && document.documentElement.scrollTop)
	        diffY = document.documentElement.scrollTop;
        else if (document.body)
	        diffY = document.body.scrollTop
        else {}
    	
        percent=0.1*(diffY-lastScrollY); 
        if(percent>0)percent=Math.ceil(percent); 
        else percent=Math.floor(percent); 	    
	    document.getElementById("showmap").style.top=(parseInt(document.getElementById("showmap").style.top)+percent)+"px";
	    //alert(document.getElementById("showmap").style.top);
        lastScrollY=lastScrollY+percent; 
    }
    }
}

//修改内容:关闭地图按钮移至地图上,关闭后无法看见打开按钮,在搜索旁增加打开地图按钮
//打开地图按钮点击触发
function openMap()
{
    //显示地图
    var mapdiv=document.getElementById("showmap");
    mapdiv.style.display='block';
    //隐藏打开地图按钮
    var btnopen=document.getElementById("btn_map_open");
    btnopen.style.display='none';
//    var hf=document.getElementById("hf_searchpoint");
//       hf.value="";
//       hf=document.getElementById("hf_result");
//       hf.value="";
      var hf=document.getElementById("hf_mapflag");
       hf.value="true";
}
//关闭按钮点击触发
function closeMap()
{
    //隐藏地图
    var mapdiv=document.getElementById("showmap");
    mapdiv.style.display='none';
    //显示打开地图按钮
    var btnopen=document.getElementById("btn_map_open");
    btnopen.style.display='block';
    var hf=document.getElementById("hf_searchpoint");
       hf.value="";
       hf=document.getElementById("hf_result");
       hf.value="";
       hf=document.getElementById("hf_mapflag");
       hf.value="false";
}
//功能说明:本函数用于添加企业标注的信息窗口
//参数说明:标注对象,企业名称,到达方法,企业id
//调用:
//被调用:
function addInfoWin( obj , name,addr,enterpid,url )
{
    var info = new LTInfoWindow( obj );//创建信息窗口
    info.setLabel( addr);//设置信息窗口显示企业地址
    info.setTitle(name);//设置信息窗口标题显示企业名称
    function dothis(){
    
    map.addOverLay( info );//添加信息窗口
    }
    function dothat(){
    map.removeOverLay(info,false);//隐藏信息窗口
    }
    function dogo(){
   // var url="EnterpriseSearch.aspx?enterpriseid="+enterpid;
    window.open ( url, "_blank");
    }
     LTEvent.addListener( obj , "mouseover" , dothis );//鼠标移上
     LTEvent.addListener( obj , "mouseout" , dothat );//鼠标移开
     LTEvent.addListener( obj , "click" , dogo );//鼠标单击
     return info;
} 
//功能说明:本函数是在用户鼠标在企业链接上时执行的操作,地图中心定位到该企业,并标注
//参数说明:经度,纬度,企业名称,到达方法,企业id
//调用:
//被调用:
function mouseon(gpsl,gpsw,enterpname,addrs,enterpid,num)
{
    var mapshow=document.getElementById("hf_mapflag");//地图开关状态
    if(mapshow.value=="true")//打开状态
    {
        var point=new LTPoint(new Number(gpsl),new Number(gpsw));
        //地图中心定位到该企业
        var currentz=map.getCurrentZoom();
        map.centerAndZoom(point,currentz);  
        var m=resultmarkarray[num];
        if(m)
        {
            map.addOverLay(m[0]);
            map.addOverLay(m[1]);
         }
    }
   
}
function mouseout(num)
{
   var mapshow=document.getElementById("hf_mapflag");//地图打开状态
    if(mapshow.value=="true")
    {
        var m=resultmarkarray[num];
        if(m)
            map.removeOverLay(m[1],false);//清除指定标记
    }
    
}

