From 94876df3b4763dda4d22b1adf52281168c8840c5 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 12 Jun 2018 17:26:06 +0800
Subject: [PATCH] 地图添加边界

---
 src/main/webapp/page/scheme-helper.html |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 1 deletions(-)

diff --git a/src/main/webapp/page/scheme-helper.html b/src/main/webapp/page/scheme-helper.html
index 4565476..ab8a551 100644
--- a/src/main/webapp/page/scheme-helper.html
+++ b/src/main/webapp/page/scheme-helper.html
@@ -120,7 +120,11 @@
     <script>
         var baiduMap;
         var markerManager = {
-            data: {},
+            data: {
+                _regionName:null,
+                _boundary:[],
+                _boundaryState:false
+            },
             bind: {}
         };
         markerManager.bindSelect = function (key, select) {
@@ -137,6 +141,54 @@
                     console.log("int markerManager key:" + key + ",don't bind select");
                 }
             }
+        }
+        markerManager.setRegionName = function (regionName){
+            this.data._regionName = regionName;
+            function getBoundary(regionName){
+                var bdary = new BMap.Boundary();
+                var map = baiduMap;
+                bdary.get(regionName, function(rs){       //������������������
+                    map.clearOverlays();        //���������������������
+                    var count = rs.boundaries.length; //������������������������������
+                    if (count === 0) {
+                        alert('������������������������������������');
+                        return ;
+                    }
+                    // var pointArray = [];
+                    var polygonArray = [];
+                    for (var i = 0; i < count; i++) {
+                        var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2,fillOpacity:0.01,strokeStyle:"dashed",strokeColor: "#0000ff"}); //������������������������
+                        // map.addOverlay(ply);  //���������������
+                        // pointArray = pointArray.concat(ply.getPath());
+                        polygonArray.push(ply);
+                    }
+                    // map.setViewport(pointArray);    //������������
+                    //addlabel();
+                    //������������
+                    markerManager.data._boundary = polygonArray;
+                });
+            }
+             getBoundary(regionName);
+        }
+        markerManager.openBoundary = function(){
+            debugger;
+            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++){
+                baiduMap.removeOverlay(this.data._boundary[n]);
+            }
+            this.data._boundaryState = false;
+        }
+        markerManager.isBoundaryState = function() {
+            return this.data._boundaryState;
         }
         markerManager.addMarker = function (key, marker) {
             this.data[key] = !!this.data[key] ? this.data[key] : [];
@@ -314,6 +366,22 @@
                     }
                 },
                 {
+                    text: '������������',
+                    callback: function () {
+                        if(!markerManager.isBoundaryState()){
+                            markerManager.openBoundary();
+                            if(markerManager.isBoundaryState()){
+                                this.setText("������������");
+                            }else{
+
+                            }
+                        }else {
+                            markerManager.closeBoundary();
+                            this.setText("������������");
+                        }
+                    }
+                },
+                {
                     text: '������������',
                     callback: function (menuItem) {
                         var result = confirm('������! ������! ������! ������������������������������')
@@ -357,6 +425,7 @@
                 var searchValue = $('.search-box').val();
                 if (!!searchValue) {
                     baiduMap.centerAndZoom(searchValue);
+                    markerManager.setRegionName(searchValue);
                 }
             });
             markerManager.bindSelect("mpoint", "#mpointCount");

--
Gitblit v1.8.0