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/page/scheme-helper.html | 124 ++++++++++++++++++++++++++++++++++-------
1 files changed, 102 insertions(+), 22 deletions(-)
diff --git a/src/main/webapp/page/scheme-helper.html b/src/main/webapp/page/scheme-helper.html
index ab8a551..891e692 100644
--- a/src/main/webapp/page/scheme-helper.html
+++ b/src/main/webapp/page/scheme-helper.html
@@ -30,13 +30,15 @@
padding: 14px 10px 0px;
text-align: center;
width: 280px;
- height: 110px;
+ height: 150px;
}
.search-box {
width: 220px;
}
-
+ .city-box {
+ width: 80px;
+ }
.anchorBL {
display: none;
}
@@ -63,6 +65,11 @@
</tr>
</table>
<table>
+ <tr>
+ <td colspan="5" class="click-handle-title">
+ ���������������<input class="city-box" type="input" /> <a id="setCityBtn" style=" text-decoration:underline; color:#00F;cursor:pointer;">������</a>
+ </td>
+ </tr>
<tr>
<td>
<input id="clickHandle_0" type="radio" name="mapClickHandle" checked value="0" />
@@ -121,9 +128,14 @@
var baiduMap;
var markerManager = {
data: {
+ mpoint:[],
+ star:[],
_regionName:null,
_boundary:[],
_boundaryState:false
+ },
+ menuItems:{
+ boundaryMenuItem:null
},
bind: {}
};
@@ -142,8 +154,8 @@
}
}
}
- markerManager.setRegionName = function (regionName){
- this.data._regionName = regionName;
+ markerManager.setRegionName = function (regionName,successCallBack,errorCallBack){
+ var thatData = this.data;
function getBoundary(regionName){
var bdary = new BMap.Boundary();
var map = baiduMap;
@@ -151,9 +163,13 @@
map.clearOverlays(); //���������������������
var count = rs.boundaries.length; //������������������������������
if (count === 0) {
- alert('������������������������������������');
+ // alert('������������������������������������');
+ if(!!errorCallBack&&errorCallBack instanceof Function){
+ errorCallBack(regionName);
+ }
return ;
}
+ map.setCurrentCity(regionName); // ��������������������������� ������������������������
// var pointArray = [];
var polygonArray = [];
for (var i = 0; i < count; i++) {
@@ -165,21 +181,24 @@
// map.setViewport(pointArray); //������������
//addlabel();
//������������
+ markerManager.reloadCustomOverlays();
+ thatData._regionName = regionName;
markerManager.data._boundary = polygonArray;
+ if(!!successCallBack && successCallBack instanceof Function){
+ successCallBack(regionName);
+ }
});
}
getBoundary(regionName);
}
markerManager.openBoundary = function(){
- debugger;
- console.log(this.data._boundary);
+ // console.log(this.data._boundary);
if(!!this.data._boundary&&this.data._boundary.length>0){
for(var n =0 ;n< this.data._boundary.length;n++){
baiduMap.addOverlay(this.data._boundary[n]);
}
this.data._boundaryState = true;
}
-
}
markerManager.closeBoundary = function(){
for(var n =0 ;n< this.data._boundary.length;n++){
@@ -250,7 +269,29 @@
}
}
}
+ markerManager.addOverlaysToBmap = function (overlays) {
+ if(!!overlays && overlays instanceof Object){
+ for(var n in overlays){
+ var overlay = overlays[n];
+ baiduMap.addOverlay(overlay);
+ }
+ }else {
+ throw new Error("in addOverlaysToBmap overlays is not list");
+ }
+ }
+ markerManager.reloadCustomOverlays = function() {
+ if(!!markerManager.data['mpoint']){
+ markerManager.addOverlaysToBmap(markerManager.data['mpoint']);
+ }
+ if(!!markerManager.data['star']){
+ markerManager.addOverlaysToBmap(markerManager.data['star']);
+ }
+ }
+ function clearBaiduOverlays() {
+ baiduMap.clearOverlays();//������������������������
+ markerManager.reloadCustomOverlays();
+ }
function clearOverlays() {
for (var key in markerManager.data) {
markerManager.data[key] = [];
@@ -258,7 +299,6 @@
}
baiduMap.clearOverlays();
}
-
function removeOverlay(key, marker) {
baiduMap.removeOverlay(marker);
markerManager.removeMarker(key, marker);
@@ -306,7 +346,19 @@
// option.offset = new BMap.Size(0,-15);
addMarker(point, option);
}
-
+ function switchBoundary() {
+ if(!markerManager.isBoundaryState()){
+ markerManager.openBoundary();
+ if(markerManager.isBoundaryState()){
+ this.setText("������������");
+ }else {
+ alert('���������������������');
+ }
+ }else {
+ markerManager.closeBoundary();
+ this.setText("������������");
+ }
+ }
function mapInit() {
var map = new BMap.Map("mapCanvas");
this.baiduMap = map;
@@ -366,19 +418,17 @@
}
},
{
+ id: 'boundaryMenuItem',
text: '������������',
callback: function () {
- if(!markerManager.isBoundaryState()){
- markerManager.openBoundary();
- if(markerManager.isBoundaryState()){
- this.setText("������������");
- }else{
-
- }
- }else {
- markerManager.closeBoundary();
- this.setText("������������");
- }
+ var that = this;
+ switchBoundary.apply(this);
+ }
+ },
+ {
+ text: '������������������',
+ callback: function (menuItem) {
+ clearBaiduOverlays();
}
},
{
@@ -405,6 +455,9 @@
width: 120,
iconUrl: item.icon
});
+ if(item.id == "boundaryMenuItem"){
+ markerManager.menuItems.boundaryMenuItem = menuItem;
+ }
menu.addItem(menuItem);
if (item.switch) {
switchMenuItems[item.handleType] = menuItem;
@@ -420,12 +473,39 @@
}
(function ($) {
var map = mapInit();
+ var local = new BMap.LocalSearch(map, {
+ renderOptions:{map: map},
+ onMarkersSet:function () {
+ markerManager.reloadCustomOverlays();
+ }
+ });
+ $('#setCityBtn').click(function () {
+ var cityName = $('.city-box').val();
+ if(!!cityName){
+ baiduMap.centerAndZoom(cityName);
+ markerManager.setRegionName(cityName,function () {
+ if(markerManager.isBoundaryState()){
+ switchBoundary.apply(markerManager.menuItems.boundaryMenuItem);
+ }
+ },function (value) {
+ alert('������������������'+value+'������������');
+ })
+ }
+ });
// ������������
$('.search-btn').on('click', function (args) {
var searchValue = $('.search-box').val();
if (!!searchValue) {
baiduMap.centerAndZoom(searchValue);
- markerManager.setRegionName(searchValue);
+ markerManager.setRegionName(searchValue,
+ function (searchValue) {
+ $('.city-box').val(searchValue);
+ if(markerManager.isBoundaryState()){
+ switchBoundary.apply(markerManager.menuItems.boundaryMenuItem);
+ }
+ },function (searchValue) {
+ local.search(searchValue);
+ });
}
});
markerManager.bindSelect("mpoint", "#mpointCount");
--
Gitblit v1.8.0