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