factors.js
来自「用来在地图上做操作GIS,在地图上做标记」· JavaScript 代码 · 共 644 行 · 第 1/2 页
JS
644 行
var map;
var untiled;
var tiled;
var editLayer;
var editPanel;
var controls;
var alreadysend;//已经发送
var waitsend;//等待发送
var justseng;//正在下发
var neitherled;//没有下发
var ledurl=new Array();
var num=new Object(0+"");
function fahui(){
alert(ledurl.length+" "+num);
var num=parseInt(num);
var obj=ledurl[--num];
// alert(obj);
obj.apply(null,['/geoserver',true]);
//init_gis('/geoserver',true);
}
function setHTML(response) {
document.getElementById('nodelist').innerHTML = response.responseText.replace("'","");
};
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
function init_gisddd(gisctx, deleteEnable) {
var i=parseInt(num);
ledurl[i]=new Object(init_gis);
num=new Object(i+"");
if(map!=null){
/* map.removeLayer(editLayer);
var panel=map.getControl("Panel");
panel.destroy();
/* for(var i=0;i<panel.controls.length;i++){
panel.controls[i]=null;
//map.removeControl(panel.controls[i]);
}
alert(map.controls.length);*/
map.destroy();
}
var bounds = new OpenLayers.Bounds(
70.36501693725586, 3.9566769361495973,
138.16777420043945, 55.919890427589415
);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: 0.2648545205593109,
projection: "EPSG:4326",
units: 'degrees'
};
map = new OpenLayers.Map('map', options);
// setup tiled layer
qgditu = new OpenLayers.Layer.WMS(
"zgditu:bou2_4p - Tiled", "/geoserver/wms",
{
width: '640',
srs: 'EPSG:4326',
layers: 'zgditu:bou2_4p',
height: '480',
styles: '',
format: 'image/png',
tiled: 'true',
tilesOrigin : "70.36501693725586,3.9566769361495973"
},
{buffer: 0}
);
map.addLayers([qgditu]);
// setup controls and initial zooms
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.Scale($('scale')));
map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
map.addControl(new OpenLayers.Control.LayerSwitcher());
//map.addControl(new OpenLayers.Control.OverviewMap());
//markers
markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
map.zoomToExtent(bounds);
//support GetFeatureInfo
map.events.register('click', map, function (e) {
document.getElementById('nodelist').innerHTML = "Loading... please wait...";
var url = map.layers[0].getFullRequestString(
{
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/xml',
QUERY_LAYERS: map.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
srs: 'EPSG:4326',
layers: 'zgditu:bou2_4p',
styles: '',
WIDTH: map.size.w,
HEIGHT: map.size.h
},
"/geoserver/wms"
);
var selectPoint = function(varresponse){
var rs=varresponse.responseText;
// alert(rs);
if(rs.indexOf("BOU2")<1){ //alert("no info");
return ;}
//alert("rs是 "+rs);
rs=rs.substr(rs.indexOf("BOU2_4M_ID = ")+13);
rs=rs.substr(0,2);//windows 部署tomcat
//rs=rs.substr(0,rs.indexOf("\n")); //linux部署tomcat
var adminCode=rs;
//alert("地区号是 "+adminCode);
if(adminCode!="44"){
alert("目前不支持选择广东省以外的地图!ffff");
}else{
init_gisgd(gisctx, deleteEnable);
//window.location.href="/was/alarmGraph.do?method=list&ec_s_id=desc&maptype=gd";
}
}
OpenLayers.loadURL(url, '', this, selectPoint, setHTML);
OpenLayers.Event.stop(e);
});
}
/*
*/
function init_gisgd(gisctx, deleteEnable) {
var i=parseInt(num);
ledurl[++i]=new Object(init_gis);
num=new Object(i);
if(map!=null){
map.destroy();
}
var bounds = new OpenLayers.Bounds(
109.2422609, 19.84321005,
117.7458351, 25.786926949999998
);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: 0.033217086718749955,
projection: "EPSG:4326",
units: 'degrees'
};
map = new OpenLayers.Map('map', options);
// setup tiled layer
tiled = new OpenLayers.Layer.WMS(
"gdditu:Dguangdong_region - Tiled", gisctx + "/wms",
{
layers: 'gdditu:Dguangdong_region',
styles: '',
height: '524',
width: '800',
srs: 'EPSG:4326',
format: 'image/png',
tiled: 'true',
tilesOrigin : "109.2422609,19.84321005"
},
{buffer: 0}
);
map.addLayers([ tiled]);
setEditPanel();
//map.removeLayer(editLayer);
//map.removeControl(editPanel);
//setup controls and initial zooms
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.Scale($('scale')));
map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
var layerswitcher=new OpenLayers.Control.LayerSwitcher();
layerswitcher.id="switcher";
map.addControl(layerswitcher);
//map.addControl(new OpenLayers.Control.OverviewMap());
//markers
markers = new OpenLayers.Layer.Markers("已经选择LED" );
map.addLayer(markers);
/* alreadysend=new OpenLayers.Layer.Markers( "已经下发地区" );
map.addLayer(alreadysend);
waitsend=new OpenLayers.Layer.Markers( "正在下发地区" );
map.addLayer(waitsend);*/
neitherled=new OpenLayers.Layer.Markers( "LED图层信息");
map.addLayer(neitherled);
map.zoomToExtent(bounds);
var guandong="113.218,25.2289,440281,./images/weather/alarm_blue.png#";
guandong+="113.78,25.1449,440224,./images/weather/alarm_blue.png#";
guandong+="114.339,25.1839,440282,./images/weather/alarm_blue.png#";
guandong+="112.453,24.9054,441882,./images/weather/alarm_blue.png#";
guandong+="114.143,24.8319,440222,./images/weather/alarm_blue.png";
// displayAreaInfos(markers,guandong);
//startRequest(url, handleStateChange);
//startRequest(url, handleStateChange);
// nonequyuInfos("input_LED图层信息");//LED显示地区
/*
//已经下发
var areaInfos="113.546,24.7746,韶关市,./images/weather/alarm_blue.png#";
areaInfos+="113.78,25.1449,仁化县,./images/weather/alarm_orange.png#";
areaInfos+="114.339,25.1839,南雄市,./images/weather/alarm_other.png#";
areaInfos+="112.453,24.9054,连州市,./images/weather/alarm_red.png#";
areaInfos+="114.143,24.8319,始兴县,./images/weather/alarm_yellow.png";
displayAreaInfos(alreadysend,areaInfos);
nonequyuInfos("input_已经下发地区");
//等待下发
areaInfos="";//
var areaInfos="115.853,22.9271,陆丰市,./images/weather/alarm_blue.png#";
areaInfos+="113.24,23.1299,荔湾区,./images/weather/alarm_orange.png#";
areaInfos+="116.668,23.6934,潮州市,./images/weather/alarm_other.png#";
areaInfos+="113.131,23.6177,清远市,./images/weather/alarm_red.png#";
areaInfos+="113.885,22.898,东莞市,./images/weather/alarm_yellow.png";
displayAreaInfos(waitsend,areaInfos);
nonequyuInfos("input_正在下发地区");
// support GetFeatureInfo
areaInfos="";// 112.592,23.1663,肇庆市",
var areaInfos="115.853,22.9271,陆丰市,./images/weather/alarm_blue.png#";
areaInfos+="112.592,23.1663,肇庆市,./images/weather/alarm_orange.png#";
areaInfos+="111.184,22.4464,,信宜市,./images/weather/alarm_other.png#";
areaInfos+="111.001,22.0079,高州市,./images/weather/alarm_red.png#";
areaInfos+="110.977,21.5809,茂名市,./images/weather/alarm_yellow.png";
displayAreaInfos(waitsend,areaInfos);
nonequyuInfos("input_正在下发地区");
// support GetFeatureInfo
//没有下发的地区
//没有下发的地区
//116.042,23.3122"普宁市",
var areaInfos="115.853,22.9271,陆丰市,./images/weather/alarm_blue.png#";
areaInfos+="113.24,23.1299,荔湾区,./images/weather/alarm_orange.png#";
areaInfos+="116.668,23.6934,潮州市,./images/weather/alarm_other.png#";
areaInfos+="113.131,23.6177,清远市,./images/weather/alarm_red.png#";
areaInfos+="113.885,22.898,东莞市,./images/weather/alarm_yellow.png";
displayAreaInfos(neitherled,areaInfos);
nonequyuInfos("input_未下发地区");*/
if(deleteEnable) {
polygonControl.handler.events.register('up', polygonControl.handler, function (e) {
});
map.events.register('click', map, function (e) {
//alert(map.getLonLatFromPixel(e.xy));
//document.getElementById('nodelist').innerHTML = "正在载入... 请稍后...";
var url = map.layers[0].getFullRequestString(
{
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/xml',
QUERY_LAYERS: map.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
srs: 'EPSG:4326',
layers: 'gdmap:Dguangdong_region',
styles: '',
WIDTH: map.size.w,
HEIGHT: map.size.h
},
gisctx+ "/wms"
);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?