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 | 84 ++++++++++++++++++++++++++++-------------- 1 files changed, 56 insertions(+), 28 deletions(-) diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index 3ff6473..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() { @@ -170,8 +185,8 @@ _bounds.southwestLat = _bounds.southwestLat || bs.southwestLat; _bounds.northeastLng = bs.northeastLng > _bounds.northeastLng ? bs.northeastLng: _bounds.northeastLng; _bounds.northeastLat = bs.northeastLat > _bounds.northeastLat ? bs.northeastLat: _bounds.northeastLat; - _bounds.southwestLng = bs.southwestLng > _bounds.southwestLng ? bs.southwestLng: _bounds.southwestLng; - _bounds.southwestLat = bs.southwestLat > _bounds.southwestLat ? bs.southwestLat: _bounds.southwestLat; + _bounds.southwestLng = bs.southwestLng < _bounds.southwestLng ? bs.southwestLng: _bounds.southwestLng; + _bounds.southwestLat = bs.southwestLat < _bounds.southwestLat ? bs.southwestLat: _bounds.southwestLat; this[key] = _bounds; } moralMap.isOverBounds = function() { @@ -184,8 +199,8 @@ } else { isOver = (bs.northeastLng > _bounds.northeastLng || bs.northeastLat > _bounds.northeastLat - || bs.southwestLng > _bounds.southwestLng - || bs.southwestLat > _bounds.southwestLat); + || bs.southwestLng < _bounds.southwestLng + || bs.southwestLat < _bounds.southwestLat); if(isOver){ moralMap.setMaxBounds(bs); } @@ -195,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) { @@ -208,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) @@ -299,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); @@ -427,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; @@ -541,7 +565,7 @@ width: 110, // ������������������ height: 80, // ������������������ title: getTitleOutHtml(), // ������������������ - offset: new BMap.Size(-2,0) //��������������������� + offset: new BMap.Size(-8,-5) //��������������������� } function getTitleOutHtml() { @@ -815,8 +839,11 @@ 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(); @@ -836,6 +863,7 @@ if(typeof option == 'object') { var longitude = option['longitude']; var latitude = option['latitude']; + // ������������������������������������ if(longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { markers.push(oldmarker); } -- Gitblit v1.8.0