From 29e3bf811d1d05eae0cb0ce6f76b32d2c634c2ac Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 05 Sep 2018 10:49:26 +0800
Subject: [PATCH] 方案助手完善
---
src/main/webapp/js/moralmap.js | 131 ++++++++++++++++++++++++++++---------------
1 files changed, 86 insertions(+), 45 deletions(-)
diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index 4bcc87a..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 = 12;
- 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) {
@@ -139,52 +154,66 @@
}
}
})();
+ // ���������������
+ moralMap.Bounds = function (baiduBounds) {
+ if(!!baiduBounds){
+ this.northeastLng = baiduBounds.xl.lng;//���������������������������
+ this.northeastLat = baiduBounds.xl.lat;//���������������������������
+ this.southwestLng = baiduBounds.Ol.lng;//���������������������������������
+ this.southwestLat = baiduBounds.Ol.lat;//���������������������������������
+ }else{
+ this.northeastLng = null;//���������������������������
+ this.northeastLat = null;//���������������������������
+ this.southwestLng = null;//���������������������������������
+ this.southwestLat = null;//���������������������������������
+ }
+ }
moralMap.getBounds = function() {
- return baiduMap.getBounds(); //������bounds;
+ return new moralMap.Bounds(baiduMap.getBounds()); //������bounds;
}
moralMap.getMaxBounds = function() {
var key = "_" + moralMap.layer() + "_bounds";
return this[key];
}
- moralMap.setMaxBounds = function(bounds) {
+ moralMap.setMaxBounds = function(bs) {
var key = "_" + moralMap.layer() + "_bounds";
- var _bounds = this[key]; //������������
- if(_bounds == undefined) {
- _bounds = {};
- }
- if(bounds == undefined) {
- bounds = baiduMap.getBounds();
- }
+ var _bounds = !!this[key]?this[key]:new moralMap.Bounds(); //������������
//������������������
- _bounds["Fe"] = _bounds['Fe'] || bounds['Fe']; //���������������������������
- _bounds["Ge"] = _bounds['Ge'] || bounds['Ge']; //���������������������������
- _bounds["Ke"] = _bounds['Ke'] || bounds['Ke']; //���������������������������������
- _bounds["Le"] = _bounds['Le'] || bounds['Le']; //���������������������������������
- _bounds["Fe"] = bounds['Fe'] > _bounds["Fe"] ? bounds['Fe'] : _bounds["Fe"]; //���������������������������
- _bounds["Ge"] = bounds['Ge'] > _bounds["Ge"] ? bounds['Ge'] : _bounds["Ge"]; //���������������������������
- _bounds["Ke"] = bounds['Ke'] < _bounds["Ke"] ? bounds['Ke'] : _bounds["Ke"]; //���������������������������������
- _bounds["Le"] = bounds['Le'] < _bounds["Le"] ? bounds['Le'] : _bounds["Le"]; //���������������������������������
+ _bounds.northeastLng = _bounds.northeastLng || bs.northeastLng;
+ _bounds.northeastLat = _bounds.northeastLat || bs.northeastLat;
+ _bounds.southwestLng = _bounds.southwestLng || bs.southwestLng;
+ _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;
this[key] = _bounds;
}
moralMap.isOverBounds = function() {
var isOver = false;
var _bounds = moralMap.getMaxBounds(); //������������
- var bounds = baiduMap.getBounds(); //������������
- if(_bounds == null) {
+ var bs = moralMap.getBounds(); //������������
+ if(!_bounds) {
isOver = true;
- moralMap.setMaxBounds(bounds);
+ moralMap.setMaxBounds(bs);
} else {
- isOver = (bounds['Fe'] > _bounds["Fe"] || bounds['Ge'] > _bounds["Ge"] || bounds['Ke'] < _bounds["Ke"] || bounds['Le'] < _bounds["Le"]);
- moralMap.setMaxBounds(bounds);
+ isOver = (bs.northeastLng > _bounds.northeastLng
+ || bs.northeastLat > _bounds.northeastLat
+ || bs.southwestLng < _bounds.southwestLng
+ || bs.southwestLat < _bounds.southwestLat);
+ if(isOver){
+ moralMap.setMaxBounds(bs);
+ }
}
return isOver;
}
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) {
@@ -195,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)
@@ -286,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);
@@ -414,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;
@@ -528,7 +565,7 @@
width: 110, // ������������������
height: 80, // ������������������
title: getTitleOutHtml(), // ������������������
- offset: new BMap.Size(-2, -21) //���������������������
+ offset: new BMap.Size(-8,-5) //���������������������
}
function getTitleOutHtml() {
@@ -620,7 +657,7 @@
width: option["online_width"], // ������������������
height:option["online_height"], // ������������������
title: getTitleOutHtml(), // ������������������
- offset: new BMap.Size(-2, -30) //���������������������
+ offset: new BMap.Size(-2, -10) //���������������������
}
function getTitleOutHtml() {
@@ -802,11 +839,14 @@
delete moralMap['_equipments'];
}
}
- moralMap.getZooMConfine = function() {
+ moralMap.getZoomConfine = function() {
return 18;
}
+ moralMap.getZoom = function() {
+ return baiduMap.getZoom();
+ }
moralMap.getHorizonMarkers = function(isShow) {
- var bounds = baiduMap.getBounds();
+ var bounds = moralMap.getBounds();
var oldMarkerList;
var isShow = (isShow) ? baiduMap : null;
if(moralMap.layer() == "equipments") {
@@ -823,7 +863,8 @@
if(typeof option == 'object') {
var longitude = option['longitude'];
var latitude = option['latitude'];
- if(longitude < bounds['Ge'] && longitude > bounds['Le'] && latitude < bounds['Fe'] && latitude > bounds['Ke']) {
+ // ������������������������������������
+ if(longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) {
markers.push(oldmarker);
}
}
--
Gitblit v1.8.0