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 + -
显示快捷键?