From 96a473814a0dad0ce4b22eff40ac6bc15b7a4037 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 26 六月 2025 12:51:13 +0800
Subject: [PATCH] 电子围栏增加行政区域搜索

---
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html     |   29 ++++++++++++++
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html    |   29 ++++++++++++++
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tSite/electricFence.js |   56 ++++++++++++++++++++++++++++
 3 files changed, 114 insertions(+), 0 deletions(-)

diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
index 0f7a8d3..0a3062f 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
@@ -99,6 +99,35 @@
                                 </div>
                             </div>
                         </div>
+                        <div class="col-sm-2">
+                            <div class="form-group">
+                                <label style='color:grey'>行政区边界查询</label>
+                                <div class="input-group">
+                                    <div class="input-group-btn">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                                                type="button">行政级别
+                                        </button>
+                                    </div>
+                                    <select id="level" class="form-control">
+                                        <option value="district">区</option>
+                                        <option value="city">市</option>
+                                        <option value="province">省</option>
+                                    </select>
+
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <div class="input-group">
+                                    <div class="input-group-btn">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                                                type="button">名称/adcode
+                                        </button>
+                                    </div>
+                                    <input id='district' class="layui-input form-control" type="text" value=''>
+                                </div>
+                            </div>
+                            <input id="find" type="button" class="btn btn-primary btn-sm" value="查询" />
+                        </div>
                     </div>
 
                     <div class="form-group">
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
index e11ce1e..c037095 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
@@ -106,6 +106,35 @@
                                 </div>
                             </div>
                         </div>
+                        <div class="col-sm-2">
+                            <div class="form-group">
+                                <label style='color:grey'>行政区边界查询</label>
+                                <div class="input-group">
+                                    <div class="input-group-btn">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                                                type="button">行政级别
+                                        </button>
+                                    </div>
+                                    <select id="level" class="form-control">
+                                        <option value="district">区</option>
+                                        <option value="city">市</option>
+                                        <option value="province">省</option>
+                                    </select>
+
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <div class="input-group">
+                                    <div class="input-group-btn">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                                                type="button">名称/adcode
+                                        </button>
+                                    </div>
+                                    <input id='district' class="layui-input form-control" type="text" value=''>
+                                </div>
+                            </div>
+                            <input id="find" type="button" class="btn btn-primary btn-sm" value="查询" />
+                        </div>
                     </div>
                     <div class="form-group">
                         <label class="col-sm-2 control-label">已添加区域</label>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tSite/electricFence.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tSite/electricFence.js
index 083d74c..3434905 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tSite/electricFence.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tSite/electricFence.js
@@ -275,7 +275,63 @@
         console.log("市区选择变化,重新获取地图数据");
         getMapData();
     });
+    document.getElementById("find").addEventListener("click", function () {
+        var level = document.getElementById("level").value;
+        var keyword = document.getElementById("district").value;
+
+        if (!keyword) {
+            Feng.error("请输入要查询的行政区名称或编码");
+            return;
+        }
+
+        // 清除旧的边界
+        if (currentBoundaryPolygon) {
+            map.removeOverlay(currentBoundaryPolygon);
+            currentBoundaryPolygon = null;
+        }
+
+        var bdary = new BMap.Boundary();
+        bdary.get(keyword, function (rs) {
+            if (rs && rs.boundaries && rs.boundaries.length > 0) {
+                for (var i = 0; i < rs.boundaries.length; i++) {
+                    var polygon = new BMap.Polygon(rs.boundaries[i], {
+                        strokeColor: "#0000FF",
+                        strokeWeight: 2,
+                        fillColor: "#1791fc",
+                        fillOpacity: 0.4
+                    });
+                    map.addOverlay(polygon);
+                    currentBoundaryPolygon = polygon;
+
+                    // 获取多边形中心点
+                    var path = polygon.getPath();
+                    var bounds = new BMap.Bounds(path[0], path[0]);
+                    for (var j = 1; j < path.length; j++) {
+                        bounds.extend(path[j]);
+                    }
+                    var centerPoint = bounds.getCenter();
+
+                    // 手动设置中心 + 缩放级别
+                    map.setCenter(centerPoint);
+
+                    // 设置缩放级别:
+                    if (level === "province") {
+                        map.setZoom(8); // 省级视角
+                    } else if (level === "city") {
+                        map.setZoom(10); // 市级视角
+                    } else if (level === "district") {
+                        map.setZoom(12); // 区级视角
+                    }
+                }
+            } else {
+                Feng.error("未找到该行政区划边界");
+            }
+        });
+    });
+
 });
+var currentBoundaryPolygon = null; // 存储当前高亮的区域边界
+
 
 // 初始化地图
 function initMap() {

--
Gitblit v1.7.1