shenzhen.js

来自「用来在地图上做操作GIS,在地图上做标记」· JavaScript 代码 · 共 381 行

JS
381
字号
    var isSelected=0;
    var lonLatx=112;
    var lonLaty=22.5;
	var adminName="";
	var adminCode="";
	var alarmLevel ="2";
	var alarmMsg="";
	
 function ceshi(guandong,markers){
    var array=splitstring(guandong,"#");
    //删除所有的Marks
	for(var j = markers.markers.length-1; j >=0 ; j--){
	    markers.removeMarker(markers.markers[j]);
    }
    for(var i=0;i<array.length;i++){
    //  alert(array[i]);
    var xianshi=splitstring(array[i],",");
        lonLatx=xianshi[0];
        lonLaty=xianshi[1];
        adminCode=xianshi[2];
        adminName=xianshi[3];
        
  	 var size = new OpenLayers.Size(50,50);
     var calculateOffset = function(size) {
  	  return new OpenLayers.Pixel(-(size.w/2), -size.h); 
  };
	var icon = new OpenLayers.Icon(getAlarmLevelImg(alarmLevel),
				null,null,null);
  // size, null, calculateOffset);				
  //var marker =new OpenLayers.Marker(map.getLonLatFromPixel(e.xy), icon);//显示到当前点中的坐标
  
	var marker =new OpenLayers.Marker(new OpenLayers.LonLat(lonLatx, lonLaty), icon);//显示到县市的中心点
	marker.adminCode=adminCode;
	marker.adminName=adminName;
	marker.showLabel=true;
	marker.labelStr="";
	//显示文本标签信息。
	marker.text = marker.adminName+"("+marker.adminCode+")";
	if(alarmMsg!=""){
		marker.text= marker.text+" " + alarmMsg;
	}
	//alert(marker.text);
    if(marker.text != ""){
       
	marker.icon.imageDiv.style.fontSize = "14px";
    marker.icon.imageDiv.style.color = "blue";
    //marker.icon.imageDiv.style.backgroundColor = "rgb(255, 255, 215)";
    marker.icon.imageDiv.style.whiteSpace = "nowrap";
    //marker.icon.imageDiv.style.width="100%";
    //marker.icon.imageDiv.style.height="30";
       var str = "";
      str+= "<img src='"+marker.icon.url+"' title='"+marker.text+"'"+"' title='"+marker.text+"'>";
      marker.icon.imageDiv.innerHTML = str;//imageDivStr + str;
      
   /*   marker.events.register('click', marker, function(evt) { 
	        markers.removeMarker(this);
		  	OpenLayers.Event.stop(evt); 
	  });*/
	  
    }
     markers.addMarker(marker);  
    }
 }




//在指定的地方区域打Markers
 function  addamartkser(adminCode,adminName,lonLatx,lonLaty,type){
   //删除
   for(var j = markers.markers.length-1; j >=0 ; j--){
	  if(adminCode == markers.markers[j].adminCode){
         markers.removeMarker(markers.markers[j]);
       }
	 }
     var size = new OpenLayers.Size(50,50);
     var calculateOffset = function(size) {
  	  return new OpenLayers.Pixel(-(size.w/2), -size.h); 
     };
	var icon = new OpenLayers.Icon(getAlarmLevelImg(alarmLevel),
				null,null,null);
   // size, null, calculateOffset);				
   //var marker =new OpenLayers.Marker(map.getLonLatFromPixel(e.xy), icon);//显示到当前点中的坐标
    var marker =new OpenLayers.Marker(new OpenLayers.LonLat(lonLatx, lonLaty), icon);//显示到县市的中心点
	marker.adminCode=adminCode;
	marker.adminName=adminName;
	marker.showLabel=true;
	marker.labelStr="";
	//显示文本标签信息。
	marker.text = marker.adminName+"("+marker.adminCode+")";
	
	
	if(alarmMsg!="")
	{
		marker.text= marker.text+" " + alarmMsg;
	}
	//alert(marker.text);
    if(marker.text != ""){
       
	marker.icon.imageDiv.style.fontSize = "14px";
    marker.icon.imageDiv.style.color = "blue";
    //marker.icon.imageDiv.style.backgroundColor = "rgb(255, 255, 215)";
    marker.icon.imageDiv.style.whiteSpace = "nowrap";
      //marker.icon.imageDiv.style.width="100%";
      //marker.icon.imageDiv.style.height="30";
       var str = "";
      str+= "<img src='"+marker.icon.url+"' title='"+marker.text+"'"+"' title='"+marker.text+"'>";
      marker.icon.imageDiv.innerHTML = str;//imageDivStr + str;
       
      marker.events.register('click', marker, function(evt) { 
	  markers.removeMarker(this);
	  OpenLayers.Event.stop(evt); 
	  
	 });
    }
     markers.addMarker(marker);     
  
  }
  
  
  
  
 



  

 //查看预警消息时,利用GIS的图层来显示发送目标地区;
   function displayAreaInfos(markers,areaInfos){
   
         
	     var array=splitstring(areaInfos,"#");
	     var image;
         for(var i=0;i<array.length;i++){
           var xianshi=splitstring(array[i],",");
           lonLatx=xianshi[0];
           lonLaty=xianshi[1];
           adminName=xianshi[2];
           image=xianshi[3];
           var size = new OpenLayers.Size(50,50);
           var calculateOffset = function(size) {
  	       return new OpenLayers.Pixel(-(size.w/2), -size.h); 
    };
	 var icon = new OpenLayers.Icon(image,
				null,null,null);
  // size, null, calculateOffset);				
  //var marker =new OpenLayers.Marker(map.getLonLatFromPixel(e.xy), icon);//显示到当前点中的坐标
  
	var marker =new OpenLayers.Marker(new OpenLayers.LonLat(lonLatx, lonLaty), icon);//显示到县市的中心点
	marker.adminCode=adminCode;
	marker.adminName=adminName;
	marker.showLabel=true;
	marker.labelStr="";
	//显示文本标签信息。
	marker.text = marker.adminName+"("+marker.adminCode+")";
	if(alarmMsg!=""){
		marker.text= marker.text+" " + alarmMsg;
	}
	//alert(marker.text);
    if(marker.text != ""){
      marker.icon.imageDiv.style.fontSize = "14px";
      marker.icon.imageDiv.style.color = "blue";
      //marker.icon.imageDiv.style.backgroundColor = "rgb(255, 255, 215)";
       marker.icon.imageDiv.style.whiteSpace = "nowrap";
      //marker.icon.imageDiv.style.width="100%";
      //marker.icon.imageDiv.style.height="30";
       var str = "";
      str+= "<img src='"+marker.icon.url+"' title='"+marker.text+"'"+"' title='"+marker.text+"'>";
      marker.icon.imageDiv.innerHTML = str;//imageDivStr + str;
      marker.events.register('click', marker, function(evt) { 
	        markers.removeMarker(this);
		  	OpenLayers.Event.stop(evt); 
	 });
    }
     markers.addMarker(marker);  
    }
 }
 

 
 //该方法当测试使用
  function deng(){
      var  mapfatures=editLayer.features ;
      var  map;
      var rende=editLayer.renderers;
           alert("rende="+rende);
         
     
    /* for(var i=0;i<rende.length;i++){
        alert(rende[i]);
     }
     alert("editLayer.renderer="+editLayer.renderer);
    
     
     
 /*     var hhandler=polygonControl.handlerOptions;
      alert(polygonControl.handler.sides);
      alert(polygonControl.handler.snapToggle);
      alert(polygonControl.handler.radius);
      alert("polygonControl= "+polygonControl.layer);
   
   */
    for(var i=0;i<mapfatures.length;i++){
          map=mapfatures[i];
          
         // alert(map);
          
           alert(map.fid);
			   alert(map.state);
			  alert("style= "+map.style.value);
			  alert(map.attributes);
			  alert();
               alert("toString()"+map.geometry.getBounds().toString());
                var gemotry=map.geometry;
                gemotry=gemotry.toString().substr(9,gemotry.toString().length);
                alert(gemotry);
                gemotry=gemotry.toString().substr(0,gemotry.length-2);
                alert(gemotry);
                gemotry=splitstring(gemotry,",");
                for(var i=0;i<gemotry.length;i++){
                    alert(gemotry[i]+"   "+map.geometry.getBounds().getCenterLonLat().toString());
                }
                
                
                
                
              // alert("deng="+map.geometry.parent);
              // alert("denghai="+map.geometry.components[0]);
			 //  alert("id ="+map.geometry.id);
			  
			    ///map.geometry.destroy();
			  
          
       
       
       }
   }
   
   
    //返回当前已框选的区域经纬度信息,目前支持两个框图,一种是圆形,另一种是四边形
   function selectMapInfos(){
     var  mapfatures=editLayer.features;
     for(var i=0;i<mapfatures.length;i++){
         var features=mapfatures[i];
         if(features.geometry.getBounds().sides==4){//正方形
              //alert("features.geometry.getBounds()="+features.geometry.getBounds().radius);
                var bount=features.geometry.getBounds().toString(); //top right left mide
                var  centerregisl=features.geometry.getBounds().getCenterLonLat().toString();
                //alert(features.radius);
                alert("正方形 "+bount+"   "+centerregisl);
               /*var gemotry=features.geometry;
                 gemotry=gemotry.toString().substr(0,8);
                 alert(gemotry);
                 gemotry=gemotry.toString().substr(0,gemotry.length-2);
                 gemotry=splitstring(gemotry,",");
                 for(var i=0;i<gemotry.length;i++){
                }*/
            }
            if(features.geometry.getBounds().sides==40){//圆形
                var lonlat=features.geometry.getBounds().getCenterLonLat(); //圆心经纬
                var radius=features.geometry.getBounds().radius;
                alert("圆形"+lonlat.toString()+"   "+radius);
               }
           }
     }
   
   
   
 //drg的转换
  function converdrag(){
      editPanel.activateControl(controls[5]); 
   }
   
  //画图删除
  function deletefactor(){
     var  mapfatures=editLayer.selectedFeatures;
       while(mapfatures.length!=0){
         var radius=mapfatures[i].geometry.getBounds().radius;
    
         var side=mapfatures[i].geometry.getBounds().sides;
         var lonlat=mapfatures[i].geometry.getBounds().getCenterLonLat();
          alert("radius="+radius+" "+mapfatures[i].id);
         alert(lonlat.lon+"  "+lonlat.lat);
          editLayer.removeFeatures(mapfatures[i]);
            
         
          alert(lonlat.lon+"  "+lonlat.lat);
          createregile(side,radius,lonlat.lon,lonlat.lat,"./images/weather/alarm_blue.png" );
        }
  }
  
  
 //显示LED图层数据信息
  function displayLEDInfos(){
    document.getElementById("input_LED图层").checked=true;
    var LayerSwitcher=this.map.getControl("switcher");
    LayerSwitcher.updateMap();
 }

//隐藏LED图层数据信息
function noneLEDInfos(){

  document.getElementById("input_LED图层").checked=false;
  var LayerSwitcher=this.map.getControl("switcher");
  LayerSwitcher.updateMap();

}
 //隐藏已经发送的地区的marker图层数据信息
 
function nonequyuInfos(markerid){
 
  document.getElementById(markerid).checked=false;
  var LayerSwitcher=this.map.getControl("switcher");
  LayerSwitcher.updateMap();

}
 
 
//返回已经选择的LEDID
 function selectAreaInfos(){
	var areaCodes="";
    for(var j = markers.markers.length-1; j >=0 ; j--){
		   areaCodes += markers.markers[j].adminCode + "#";
	}
	areaCodes=areaCodes.substr(0,areaCodes.length-1);
	alert(areaCodes);
	return areaCodes;
}

 //输入需要显示的图层区域信息,在GIS的WEB地图上显示出图层
function displayMapInfos( mapInfos){
     var mapInfos="1,113.26152839296866,23.479410234374996,0.687601718482206,./images/weather/alarm_blue.png#"; 
     var mapinfo=splitstring(mapInfos,"#");
     for(var i=0;i<mapinfo.length;i++){
        var featureone=splitstring(mapinfo[i],",");
         if(featureone[0]==1){//圆形
            createregile(40,featureone[3],featureone[1],featureone[2],featureone[4]); 
         }if(featureone[0]==2){//四边形
           
             
         }
       }
     // createregile();
  }
  
  function  createregile(side,radius,lon, lat, image){
      var feature = new OpenLayers.Feature.Vector();
      //0.687601718482206
      //y  23.479410234374996
      //x 113.26152839296866
      var style = OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'], {});
      var  origin = new OpenLayers.Geometry.Point(lon,lat);
      //var radius=0.387601718482206;
      feature.geometry = OpenLayers.Geometry.Polygon.createRegularPolygon(
           origin, radius, side, null
      )
      var icon = new OpenLayers.Icon(image,
				null,null,null);
      var marker =new OpenLayers.Marker(new OpenLayers.LonLat(lon, lat), icon);//确定位置
          marker.icon.imageDiv.style.fontSize = "14px";
      marker.icon.imageDiv.style.color = "blue";
      //marker.icon.imageDiv.style.backgroundColor = "rgb(255, 255, 215)";
       marker.icon.imageDiv.style.whiteSpace = "nowrap";
      //marker.icon.imageDiv.style.width="100%";
      //marker.icon.imageDiv.style.height="30";
       var str = "";
      str+= "<img src='"+marker.icon.url+"'>";
      marker.icon.imageDiv.innerHTML = str;//imageDivStr + str;
      marker.events.register('click', marker, function(evt) { 
	        markers.removeMarker(this);
		  	OpenLayers.Event.stop(evt); 
	 });
	  editLayer.addFeatures(feature);
      editLayer.drawFeature(feature, style);
      markers.addMarker(marker);
        
    }


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?