⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainqg.js

📁 用来在地图上做操作GIS,在地图上做标记
💻 JS
字号:
//广东省县市坐标与行政区划代码信息
var gdareainfo=[
	113.218,25.2289,"440281","乐昌市",
	113.78,25.1449,"440224","仁化县",
	114.339,25.1839,"440282","南雄市",
	112.453,24.9054,"441882","连州市",
	114.143,24.8319,"440222","始兴县",
	113.174,24.8006,"440232","乳源瑶族自治县",
	113.546,24.7746,"440200","韶关市",
	115.928,24.6671,"441426","平远县",
	112.697,24.447,"441823","阳山县",
	112.268,24.6136,"441826","连南瑶族自治县",
	116.22,24.6517,"441427","蕉岭县",
	112.046,24.5154,"441825","连山壮族瑶族自治县",
	116.171,24.3575,"441421","梅县",
	115.326,24.3137,"441622","龙川县",
	114.982,24.4322,"441624","和平县",
	116.626,24.3437,"441422","大埔县",
	113.988,24.3988,"440229","翁源县",
	115.759,24.2475,"441481","兴宁市",
	114.589,24.3425,"441623","连平县",
	113.338,24.1964,"441881","英德市",
	116.102,24.2744,"441400","梅州市",
	112.195,23.9327,"441224","怀集县",
	112.962,23.9307,"441827","清新县",
	114.16,24.0795,"440233","新丰县",
	114.853,23.9629,"441625","东源县",
	116.943,23.8531,"445122","饶平县",
	116.275,23.9175,"441423","丰顺县",
	115.669,23.7808,"441424","五华县",
	113.552,23.8888,"441821","佛冈县",
	116.759,23.7127,"445121","潮安县",
	111.694,23.5962,"441225","封开县",
	112.397,23.6702,"441223","广宁县",
	114.118,23.6462,"441324","龙门县",
	113.669,23.6487,"440184","从化市",
	114.652,23.6922,"441600","河源市",
	113.131,23.6177,"441800","清远市",
	115.062,23.4701,"441621","紫金县",
	116.554,23.5765,"445221","揭东县",
	116.668,23.6934,"445100","潮州市",
	114.271,23.3763,"441322","博罗县",
	112.643,23.4495,"441284","四会市",
	115.901,23.4851,"445222","揭西县",
	116.583,23.3388,"440500","汕头市",
	113.744,23.3502,"440183","增城市",
	113.217,23.4307,"440114","花都区",
	116.37,23.5214,"445200","揭阳市",
	112.891,23.108,"440600","佛山市",
	117.13,23.3702,"440523","南澳县",
	116.042,23.3122,"445281","普宁市",
	111.902,23.288,"441226","德庆县",
	115.624,23.2917,"441523","陆河县",
	112.756,23.1015,"441283","高要市",
	113.368,23.2701,"440111","白云区",
	111.632,23.0586,"445322","郁南县",
	112.592,23.1663,"441200","肇庆市",
	113.36,23.1718,"440106","天河区",
	115.281,22.9641,"441521","海丰县",
	116.271,23.0153,"445224","惠来县",
	113.484,23.0953,"440112","黄埔区",
	115.853,22.9271,"441581","陆丰市",
	113.24,23.1299,"440103","荔湾区",
	113.26,23.1294,"440104","越秀区",
	113.3,23.1272,"440102","东山区",
	113.885,22.898,"441900","东莞市",
	111.951,22.8497,"445323","云安县",
	112.146,22.9655,"445300","云浮市",
	113.227,23.0818,"440107","芳村区",
	113.331,23.0788,"440105","海珠区",
	113.495,22.7965,"440113","番禺区",
	111.47,22.6894,"445381","罗定市",
	115.418,22.7619,"441500","汕尾市",
	112.763,22.662,"440784","鹤山市",
	112.244,22.6087,"445321","新兴县",
	113.03,22.4386,"440700","江门市",
	113.425,22.4764,"442000","中山市",
	111.184,22.4464,"440983","信宜市",
	111.722,22.2597,"441781","阳春市",
	112.526,22.311,"440783","开平市",
	112.266,22.2027,"440785","恩平市",
	112.679,21.9944,"440781","台山市",
	111.001,22.0079,"440981","高州市",
	112.041,21.9699,"441723","阳东县",
	110.54,21.8416,"440982","化州市",
	111.215,21.6637,"440923","电白县",
	112.003,21.7329,"441700","阳江市",
	110.13,21.6612,"440881","廉江市",
	111.599,21.6869,"441721","阳西县",
	110.977,21.5809,"440900","茂名市",
	110.781,21.4186,"440883","吴川市",
	110.03,21.2508,"440823","遂溪县",
	110.417,21.1434,"440800","湛江市",
	110.054,20.796,"440882","雷州市",
	116.824,20.7034,"446000","东沙群岛",
	110.209,20.4242,"440825","徐闻县",
	114.458,22.8943,"441300","惠州市",
	114.829,22.9424,"441323","惠东县",
	114.076,22.6029,"440300","深圳市",
	113.735,22.1174,"440400","珠海市"
];

var map;
var untiled;
var tiled;
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_gis(gisctx, deleteEnable) {
            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
 //alert("前两位"+rs);
//rs=rs.substr(0,rs.indexOf("\n")); //linux部署tomcat
var adminCode=rs;
//alert("地区号是 "+adminCode);
if(adminCode!="44"){
alert("目前不支持选择广东省以外的地图!");
}else{
window.location.href="/was/alarmGraph.do?method=list&ec_s_id=desc&maptype=gd";
}
				}
                OpenLayers.loadURL(url, '', this, selectPoint, setHTML);
                OpenLayers.Event.stop(e);
            });
}
	
/*
标记地区
参数 deleteEnable 是否允许删除
		adminCode 行政区号,6位长
		alarmLevel 预警级别 1:红色警报 2:橙色警报 3:黄色警报 4:蓝色警报 5:其他警报
		alarmMsg 预警消息
*/	
function lzbmarkArea(deleteEnable, adminCode,alarmLevel,alarmMsg){
	var isSelected=0;
	var lonLatx=112;
  var lonLaty=22.5;
	var adminName="";
	if(!alarmMsg){alarmMsg=""};
	for(var i=0;i<=gdareainfo.length;i++){
		if(gdareainfo[i]==adminCode){
			lonLatx=gdareainfo[i-2];
			lonLaty=gdareainfo[i-1]+0.5;
			adminName=gdareainfo[i+1];
		}
	}
	if(adminName=="") {
		//alert('no info ');
		return;
	};
	/*
	var idx=$('myselect').options.length;
  for(var j = 0; j < idx; j++) {
		if(adminCode == $('myselect').options[j].value)
    {
    	isSelected=2;
    }
  }

	if(isSelected<2){
	 	$('myselect').options.length++;
	  $('myselect').options[idx].value=adminCode;
	  $('myselect').options[idx].text=adminName;
	}
	*/

	//alert(""+markers.markers.length);
	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+"' alt='"+marker.text+"'"+"' title='"+marker.text+"'>";
    marker.icon.imageDiv.innerHTML = str;//imageDivStr + str;
	}
    this.labelStr=marker.icon.imageDiv.innerHTML;
	if (deleteEnable) {
	  marker.events.register('click', marker, function(evt) { 
			markers.removeMarker(this);
			OpenLayers.Event.stop(evt); 
		});
	}else{
	marker.events.register('click', marker, function(evt) { 
	//alert(" 当前状态 "+this.showLabel);
	//alert(this.icon.imageDiv.innerHTML);
if(this.showLabel){ 
	    var str = "";
this.showLabel=false;
	str+= "<table border=\"0\" bordercolor=\"#FF0000\">";
                str+= "<tr><td bgcolor=\"rgb(255, 255, 215)\" style=\"white-space:nowrap\">";
 str+= "<img src='"+marker.icon.url
	+"' ' height=20px width=20px alt='"+marker.text+"'"+"' title='"+marker.text+"' "
	+" />";
                str+= this.text.replace(new RegExp("\n","gm"),'<br/>');
                str+= "</td></tr>";
                str+= "</table>";    
				   
				this.icon.imageDiv.innerHTML = str;//imageDivStr + str;
}else{
    var str = "";
    str+= "<img src='"+marker.icon.url	
	+"' height=20px width=20px "		
	+"' alt='"+marker.text+"'"+"' title='"+marker.text+"' "
	+" style=\"FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=0);WIDTH: 20px; POSITION: relative; HEIGHT: 20px\" /><br/>";
//alert('不显示label');
this.showLabel=true;
    this.icon.imageDiv.innerHTML = str;//imageDivStr + str;
}
//alert(this.icon.imageDiv.innerHTML);
			OpenLayers.Event.stop(evt); 
		});
	}		
  markers.addMarker(marker);

}

function getSelected(){
	var areaCodes="";
  for(var j = markers.markers.length-1; j >=0 ; j--){
		areaCodes += markers.markers[j].adminCode + ",";
	}
	return areaCodes;
	
}

/*
根据预警级别获得对应图片
*/
function getAlarmLevelImg(level) {
	var imgName = "";
	if (level == 1) {
		imgName = "alarm_red.png";
	} else if (level == 2) {
		imgName = "alarm_orange.png";
	} else if (level == 3) {
		imgName = "alarm_yellow.png";
	} else if (level == 4) {
		imgName = "alarm_blue.png";
	} else {
		imgName = "alarm_other.png";
	}
	return "/was/images/weather/" + imgName;
}

⌨️ 快捷键说明

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