From 5ddef25bcb1f56a10eddf2a264cb338d178ff5f1 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 05 Sep 2018 09:50:15 +0800 Subject: [PATCH] 百度地图,方案助手完善 --- src/main/webapp/js/moralmap.js | 76 +++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index c2b46ce..f65701f 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -44,22 +44,37 @@ * ��������������������� */ moralMap.mapInit = function() { - baiduMap = new BMap.Map("mapCanvas", { - minZoom: 12, - maxZoom: 20 - }); // ������Map������,���������������������������/��������� + var defaultParam = { + minZoom: 12, + maxZoom: 20 + }; + if(!!arguments[1]) { + $.extend(defaultParam,arguments[1]); + } + baiduMap = new BMap.Map("mapCanvas",defaultParam); // ������Map������,���������������������������/��������� var map = baiduMap; var mapStyle = { features: ["road", "building", "water", "land"], //������������������poi style: "normal" //������������������������������ } map.setMapStyle(mapStyle); - var showZoom = 13; - if(arguments.length == 2) { - map.centerAndZoom(new BMap.Point(arguments[0], arguments[1]), showZoom); - } else if(arguments.length == 1) { - map.centerAndZoom(arguments[0], showZoom); - } + var showZoom = !!arguments[2] + && arguments[2] <=defaultParam.maxZoom + && arguments[2] >= defaultParam.minZoom?arguments[2]:12; + var address = arguments[0]; + var regoinNames = address.split(" "); + var cityName = regoinNames.length>1?regoinNames[1]:regoinNames[0]; + map.setCurrentCity(cityName); + // ���������������������������������������,��������������������� + // ��������������������������� + var myGeo = new BMap.Geocoder(); + myGeo.getPoint(address, function(point){ + if (point) { + map.centerAndZoom(point, showZoom); + }else{ + alert("������������������������������������!"); + } + }, cityName); //������������������ map.enableScrollWheelZoom(true); var navigation = new BMap.NavigationControl({ @@ -107,7 +122,7 @@ var startZoom = moralMap.startZoom(); //������key������������������ // var key = moralMap.lazyKeyer(); - var confine = moralMap.getZooMConfine(); + var confine = moralMap.getZoomConfine(); if(endZoom > startZoom) { //������������������ if(endZoom >= confine && startZoom <= confine) { @@ -144,13 +159,13 @@ if(!!baiduBounds){ this.northeastLng = baiduBounds.xl.lng;//��������������������������� this.northeastLat = baiduBounds.xl.lat;//��������������������������� - this.southwestLng = baiduBounds.Ol.lng;//��������������������������������� - this.southwestLat = baiduBounds.Ol.lat;//��������������������������������� + this.southwestLng = baiduBounds.Ol.lng;//��������������������������������� + this.southwestLat = baiduBounds.Ol.lat;//��������������������������������� }else{ this.northeastLng = null;//��������������������������� this.northeastLat = null;//��������������������������� - this.southwestLng = null;//��������������������������������� - this.southwestLat = null;//��������������������������������� + this.southwestLng = null;//��������������������������������� + this.southwestLat = null;//��������������������������������� } } moralMap.getBounds = function() { @@ -182,7 +197,6 @@ isOver = true; moralMap.setMaxBounds(bs); } else { - debugger; isOver = (bs.northeastLng > _bounds.northeastLng || bs.northeastLat > _bounds.northeastLat || bs.southwestLng < _bounds.southwestLng @@ -196,9 +210,10 @@ } moralMap.addOverlay = function(overlay) { if(overlay.getMap() != baiduMap) { - setTimeout(function(){ + // setTimeout(function(){ baiduMap.addOverlay.call(baiduMap, overlay); - },10); + // },10); + baiduMap.addOverlay.call(baiduMap, overlay); } } moralMap.addOverlays = function(overlays) { @@ -209,8 +224,16 @@ } } - moralMap.removeOverlay = function() { + moralMap.removeOverlay = function(overlay) { + // baiduMap.removeOverlay(overlay); baiduMap.removeOverlay.apply(baiduMap, arguments); + } + moralMap.removeOverlays = function(overlays) { + if(overlays != null && typeof overlays == 'object') { + for (var i in overlays) { + moralMap.removeOverlay(overlays[i]); + } + } } moralMap.getOverlays = function() { var overLays = baiduMap.getOverlays.apply(baiduMap, arguments) @@ -300,12 +323,12 @@ if(window["console"]!=undefined){ console.log(equStr); } - if(!!window['external']&&window['external']['callWin']){ + if(!!window['external']&&!!window['external']['callWin']){ window['external'].callWin(equStr); }else{ - if(!!select&&select==='chart'&&!!window['external']&&window['external']['showChartInfo']){ + if(!!select&&select==='chart'&&!!window['external']&&!!window['external']['showChartInfo']){ window['external'].showChartInfo(equStr); - }else if(!!window['external']&&window['external']['showMonitorInfo']){ + }else if(!!window['external']&&!!window['external']['showMonitorInfo']){ window['external'].showMonitorInfo(equStr); }else{ alert(equStr); @@ -428,7 +451,7 @@ state = stateObj["state"]; stateName = stateObj["stateName"]; var name = e['name']; - if(moralMap.getUtf8Length(name) > 24) { + if(moralMap.getUtf8Length(name) > 22) { var stop1 = 0; for(var stop1_i = 0, len = 0; stop1_i < name.length; stop1_i++) { len += ((name.charCodeAt(stop1_i) & 0xff00) != 0) ? 2 : 1; @@ -542,7 +565,7 @@ width: 110, // ������������������ height: 80, // ������������������ title: getTitleOutHtml(), // ������������������ - offset: new BMap.Size(-2,0) //��������������������� + offset: new BMap.Size(-8,-5) //��������������������� } function getTitleOutHtml() { @@ -816,9 +839,12 @@ delete moralMap['_equipments']; } } - moralMap.getZooMConfine = function() { + moralMap.getZoomConfine = function() { return 18; } + moralMap.getZoom = function() { + return baiduMap.getZoom(); + } moralMap.getHorizonMarkers = function(isShow) { var bounds = moralMap.getBounds(); var oldMarkerList; -- Gitblit v1.8.0