| 
														
															@@ -3,26 +3,26 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 </template> 
														 | 
														
														 | 
														
															 </template> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 <script setup> 
														 | 
														
														 | 
														
															 <script setup> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import { ref, onMounted, onUnmounted } from "vue"; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { ref, onMounted, onUnmounted, nextTick } from "vue"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import AMapLoader from "@amap/amap-jsapi-loader"; 
														 | 
														
														 | 
														
															 import AMapLoader from "@amap/amap-jsapi-loader"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import eventBus from "@/api/eventBus"; 
														 | 
														
														 | 
														
															 import eventBus from "@/api/eventBus"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { convertPointToArray } from "@/utils/index"; 
														 | 
														
														 | 
														
															 import { convertPointToArray } from "@/utils/index"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { deepClone } from "@/common/commonFun"; 
														 | 
														
														 | 
														
															 import { deepClone } from "@/common/commonFun"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import wellknown from 'wellknown'; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import {base_img_url,base_img_url3} from "@/api/config"; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import wellknown from "wellknown"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { base_img_url, base_img_url3 } from "@/api/config"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const map = ref(null); 
														 | 
														
														 | 
														
															 const map = ref(null); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const mouseTool = ref(null); 
														 | 
														
														 | 
														
															 const mouseTool = ref(null); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const selectedArea = ref(null); 
														 | 
														
														 | 
														
															 const selectedArea = ref(null); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const selectedPoints = ref([]); 
														 | 
														
														 | 
														
															 const selectedPoints = ref([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const allPoints = ref([]); 
														 | 
														
														 | 
														
															 const allPoints = ref([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const defalutAllPoints = ref([]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const pointList = ref([]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const defalutAllPoints = ref([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const pointList = ref([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const mapEventType = ref('rectangle') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const mapEventType = ref("rectangle"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 自定义圆点样式 
														 | 
														
														 | 
														
															 // 自定义圆点样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const createMarkerContent = (color = 'rgba(0, 0, 0, 0.4)') => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const createMarkerContent = (color = "rgba(0, 0, 0, 0.4)") => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return ` 
														 | 
														
														 | 
														
															     return ` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         <div style=" 
														 | 
														
														 | 
														
															         <div style=" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             width: 15px; 
														 | 
														
														 | 
														
															             width: 15px; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -33,21 +33,21 @@ const createMarkerContent = (color = 'rgba(0, 0, 0, 0.4)') => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         "> 
														 | 
														
														 | 
														
															         "> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         </div> 
														 | 
														
														 | 
														
															         </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     `; 
														 | 
														
														 | 
														
															     `; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //高亮样式 
														 | 
														
														 | 
														
															 //高亮样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const createMarkerImg = () => { 
														 | 
														
														 | 
														
															 const createMarkerImg = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return ` 
														 | 
														
														 | 
														
															     return ` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        <img style="width: 38px;height: 38px;" src="${require('@/assets/images/map/status/active-icon.png')}"> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <img style="width: 38px;height: 38px;" src="${require("@/assets/images/map/status/active-icon.png")}"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     `; 
														 | 
														
														 | 
														
															     `; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 初始化地图 
														 | 
														
														 | 
														
															 // 初始化地图 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const initMap = async () => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const initMap = async (mapData, callback) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     try { 
														 | 
														
														 | 
														
															     try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const AMap = await AMapLoader.load({ 
														 | 
														
														 | 
														
															         const AMap = await AMapLoader.load({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             key: "41769169f0f157e13a197e7eb0dd7b5b", // 替换为你的高德地图 Key 
														 | 
														
														 | 
														
															             key: "41769169f0f157e13a197e7eb0dd7b5b", // 替换为你的高德地图 Key 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             version: "2.0", // SDK 版本 
														 | 
														
														 | 
														
															             version: "2.0", // SDK 版本 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            plugins: ["AMap.MouseTool","AMap.MarkerCluster"], // 加载 MouseTool 插件 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            plugins: ["AMap.MouseTool", "AMap.MarkerCluster"], // 加载 MouseTool 插件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }).then(async (AMap) => { 
														 | 
														
														 | 
														
															         }).then(async (AMap) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 创建地图实例 
														 | 
														
														 | 
														
															             // 创建地图实例 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             map.value = new AMap.Map("map-container", { 
														 | 
														
														 | 
														
															             map.value = new AMap.Map("map-container", { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -57,7 +57,7 @@ const initMap = async () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     // 天地图卫星 
														 | 
														
														 | 
														
															                     // 天地图卫星 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
														
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         tileSize: 256, // 瓦片大小 
														 | 
														
														 | 
														
															                         tileSize: 256, // 瓦片大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        getTileUrl: function(x, y, z) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        getTileUrl: function (x, y, z) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             // 天地图影像 WMTS 地址 
														 | 
														
														 | 
														
															                             // 天地图影像 WMTS 地址 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             const s = Math.floor(Math.random() * 8); // 随机选择服务器节点 
														 | 
														
														 | 
														
															                             const s = Math.floor(Math.random() * 8); // 随机选择服务器节点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             // return `https://t{0-7}.tianditu.gov.cn/img_c/w mts?tk=e95115c454a663cd052d96019fd83840` 
														 | 
														
														 | 
														
															                             // return `https://t{0-7}.tianditu.gov.cn/img_c/w mts?tk=e95115c454a663cd052d96019fd83840` 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -67,7 +67,7 @@ const initMap = async () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     //天地图路网 
														 | 
														
														 | 
														
															                     //天地图路网 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
														
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         tileSize: 256, // 瓦片大小 
														 | 
														
														 | 
														
															                         tileSize: 256, // 瓦片大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        getTileUrl: function(x, y, z) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        getTileUrl: function (x, y, z) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             // 天地图影像 WMTS 地址 
														 | 
														
														 | 
														
															                             // 天地图影像 WMTS 地址 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             const s = Math.floor(Math.random() * 8); // 随机选择服务器节点 
														 | 
														
														 | 
														
															                             const s = Math.floor(Math.random() * 8); // 随机选择服务器节点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             return `https://t${s}.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=${z}&TILEROW=${y}&TILECOL=${x}&tk=e95115c454a663cd052d96019fd83840`; 
														 | 
														
														 | 
														
															                             return `https://t${s}.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=${z}&TILEROW=${y}&TILECOL=${x}&tk=e95115c454a663cd052d96019fd83840`; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -75,13 +75,13 @@ const initMap = async () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }), 
														 | 
														
														 | 
														
															                     }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     //正射影像 
														 | 
														
														 | 
														
															                     //正射影像 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
														
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        tileUrl: base_img_url + 'map/lby/[z]/[x]/[y].png', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        zIndex:2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        tileUrl: base_img_url + "map/lby/[z]/[x]/[y].png", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        zIndex: 2, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }), 
														 | 
														
														 | 
														
															                     }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
														
														 | 
														
															                     new AMap.TileLayer({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        tileUrl: base_img_url3 + 'map/lby/[z]/[x]/[y].png', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        zIndex:2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        tileUrl: base_img_url3 + "map/lby/[z]/[x]/[y].png", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        zIndex: 2, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 ], 
														 | 
														
														 | 
														
															                 ], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }); 
														 | 
														
														 | 
														
															             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -94,96 +94,188 @@ const initMap = async () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 初始化 MouseTool 
														 | 
														
														 | 
														
															             // 初始化 MouseTool 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mouseTool.value = new AMap.MouseTool(map.value); 
														 | 
														
														 | 
														
															             mouseTool.value = new AMap.MouseTool(map.value); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // startRectangleSelection() 
														 | 
														
														 | 
														
															             // startRectangleSelection() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 监听框选完成事件 
														 | 
														
														 | 
														
															             // 监听框选完成事件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mouseTool.value.on("draw", (event) => { 
														 | 
														
														 | 
														
															             mouseTool.value.on("draw", (event) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(mapEventType.value==='click') return 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                const { obj} = event; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (mapEventType.value === "click") return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                const { obj } = event; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (obj instanceof AMap.Rectangle) { 
														 | 
														
														 | 
														
															                 if (obj instanceof AMap.Rectangle) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     selectedArea.value = obj; 
														 | 
														
														 | 
														
															                     selectedArea.value = obj; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     map.value.remove(selectedArea.value); 
														 | 
														
														 | 
														
															                     map.value.remove(selectedArea.value); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     checkPointsInArea(); // 检查框选区域内的点位 
														 | 
														
														 | 
														
															                     checkPointsInArea(); // 检查框选区域内的点位 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }); 
														 | 
														
														 | 
														
															             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }); 
														 | 
														
														 | 
														
															         }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        initData(mapData, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        callback && callback(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } catch (error) { 
														 | 
														
														 | 
														
															     } catch (error) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         console.error("地图加载失败:", error); 
														 | 
														
														 | 
														
															         console.error("地图加载失败:", error); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //重置数据 
														 | 
														
														 | 
														
															 //重置数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const resetData = () =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    allPoints.value = defalutAllPoints.value 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    allPoints.value.forEach(item =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.icon.setContent(createMarkerContent(item.color)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.icon.setOffset(new window.AMap.Pixel(-7, -7)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.type = 'defalutIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const resetData = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    allPoints.value = defalutAllPoints.value; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    allPoints.value.forEach((item) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        item.icon.setContent(createMarkerContent(item.color)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // item.icon.setOffset(new window.AMap.Pixel(-7, -7)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        item.type = "defalutIcon"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //初始化数据 
														 | 
														
														 | 
														
															 //初始化数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const initData = (data) =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    allPoints.value = data 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    defalutAllPoints.value = [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    totalList.value.forEach(item => map.value.remove(item.icon)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    totalList.value = [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    allPoints.value.forEach(item =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.icon = new window.AMap.Marker({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            position: item.lnglat, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            map: map.value, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            content: createMarkerContent(item.color), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            offset: new window.AMap.Pixel(-7, -7), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            extData: { id: item.id, priority: item.status > item.noImg > item.wys } // 标记优先级 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.type = 'defalutIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // 绑定点击事件 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        item.icon.on('click', () => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            mapEventType.value = 'click' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(item.type === 'defalutIcon'){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if (startDraw.value) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    item.icon.setContent(createMarkerImg());  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    item.icon.setOffset(new window.AMap.Pixel(-18, -18)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    item.type = 'activeIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    const arr = pointList.value.filter(ele => ele.id === item.id) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if(arr.length===0){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        pointList.value.push(item) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                item.icon.setContent(createMarkerContent(item.color));  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                item.icon.setOffset(new window.AMap.Pixel(-7, -7)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                item.type = 'defalutIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            console.log('item', item); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            eventBus.emit("clickMapPoint", item) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            setTimeout(()=>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                mapEventType.value = 'draw' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            },100) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const initData = (data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    allPoints.value = data; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    defalutAllPoints.value = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    totalList.value.forEach((item) => map.value.remove(item.icon)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    totalList.value = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // allPoints.value.forEach(item =>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     item.icon = new window.AMap.Marker({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         position: item.lnglat, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         map: map.value, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         content: createMarkerContent(item.color), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         offset: new window.AMap.Pixel(-7, -7), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         extData: { id: item.id, priority: item.status > item.noImg > item.wys } // 标记优先级 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     item.type = 'defalutIcon' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     // 绑定点击事件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     item.icon.on('click', () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         mapEventType.value = 'click' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         if(item.type === 'defalutIcon'){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             if (startDraw.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 item.icon.setContent(createMarkerImg()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 item.icon.setOffset(new window.AMap.Pixel(-18, -18)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 item.type = 'activeIcon' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 const arr = pointList.value.filter(ele => ele.id === item.id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 if(arr.length===0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                     pointList.value.push(item) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //                 eventBus.emit("clickMapPoint", item) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         }else{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             item.icon.setContent(createMarkerContent(item.color)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             item.icon.setOffset(new window.AMap.Pixel(-7, -7)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             item.type = 'defalutIcon' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         setTimeout(()=>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //             mapEventType.value = 'draw' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         },100) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     defalutAllPoints.value.push(item) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 先清除现有的聚合实例 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (clusterInstance.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        clusterInstance.value.setMap(null); // 从地图上移除 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        clusterInstance.value = null; // 释放引用 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 初始化点聚合 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // console.log('data',data); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    clusterInstance.value = new window.AMap.MarkerCluster(map.value, allPoints.value, { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        gridSize: 20, // 聚合网格像素大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // maxZoom: 15,           // 最大聚合级别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        renderClusterMarker: _renderClusterMarker, // 自定义聚合样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        renderMarker: _renderMarker, // 自定义非聚合点样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 创建 AMap.Marker 实例数组 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const markers = allPoints.value.map((item) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return new window.AMap.Marker({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            position: item.lnglat 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }); 
														 | 
														
														 | 
														
															         }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        defalutAllPoints.value.push(item) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    setTimeout(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        map.value.setFitView(markers); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }, 100); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function updateClusterData(isAll) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let data = [] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log('updateClusterData', isAll); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (isAll) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        data = allPoints.value 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 筛选待开放点位 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        data = allPoints.value.filter((item) => item.fosterStatus === 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 先清除现有的聚合实例 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (clusterInstance.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        clusterInstance.value.setMap(null); // 从地图上移除 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        clusterInstance.value = null; // 释放引用 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // if (markersPoints.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     markersPoints.value.map(marker => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //         map.value.remove(marker) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // 初始化点聚合 
														 | 
														
														 | 
														
															     // 初始化点聚合 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // console.log('data',data); 
														 | 
														
														 | 
														
															     // console.log('data',data); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    // const cluster = new window.AMap.MarkerCluster(map.value, data, { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //     gridSize: 30,          // 聚合网格像素大小 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //     // maxZoom: 15,           // 最大聚合级别 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //     // renderClusterMarker: customizeCluster // 自定义聚合样式 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    // }); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    setTimeout(()=>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        map.value.setFitView(null, false, [0, 0, 0, 0]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    },100) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    clusterInstance = new window.AMap.MarkerCluster(map.value, data, { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        gridSize: 20, // 聚合网格像素大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // maxZoom: 15,           // 最大聚合级别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        renderClusterMarker: _renderClusterMarker, // 自定义聚合样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        renderMarker: _renderMarker, // 自定义非聚合点样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const startDraw = ref(false) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+let clusterInstance = ref(null); // 存储聚合实例 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+let markersPoints = null; // 存储点位实例 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 聚合样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const _renderClusterMarker = function (context) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const isActive = context.clusterData[0].activePoint 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log('isActive', isActive); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    context.marker.setContent(createMarkerContent(context.clusterData[0].color)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // context.marker.setOffset(new window.AMap.Pixel(-7, -7)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    context.marker.on("click", function (e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (startDraw.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            context.data[0].activePoint = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            e.target.setContent(createMarkerImg()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            e.target.setOffset(new window.AMap.Pixel(-19, -44)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            eventBus.emit("clickMapPoint", context.clusterData[0]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 单个非聚合样式 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const _renderMarker = function (context) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const isActive = context.data[0].activePoint 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log('aaaaisActive', isActive); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (isActive) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        context.marker.setContent(createMarkerImg()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        context.marker.setContent(createMarkerContent(context.data[0].color)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // context.marker.setOffset(new window.AMap.Pixel(-7, -7)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    context.marker.on("click", function (e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (startDraw.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            context.data[0].activePoint = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            e.target.setContent(createMarkerImg()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            e.target.setOffset(new window.AMap.Pixel(-19, -42)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            eventBus.emit("clickMapPoint", context.data[0]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const startDraw = ref(false); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 开始框选 
														 | 
														
														 | 
														
															 // 开始框选 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const startRectangleSelection = () => { 
														 | 
														
														 | 
														
															 const startRectangleSelection = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 筛选聚合点位数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    updateClusterData(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (mouseTool.value) { 
														 | 
														
														 | 
														
															     if (mouseTool.value) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        startDraw.value = true 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        startDraw.value = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         mouseTool.value.rectangle({ 
														 | 
														
														 | 
														
															         mouseTool.value.rectangle({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             strokeColor: "#ffffff", // 框选区域边框颜色 
														 | 
														
														 | 
														
															             strokeColor: "#ffffff", // 框选区域边框颜色 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             strokeOpacity: 1, // 边框透明度 
														 | 
														
														 | 
														
															             strokeOpacity: 1, // 边框透明度 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -195,10 +287,12 @@ const startRectangleSelection = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															- // 停止绘制矩形 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 停止绘制矩形 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const stopDrawRectangle = () => { 
														 | 
														
														 | 
														
															 const stopDrawRectangle = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     mouseTool.value.close(); // 关闭 mouseTool 
														 | 
														
														 | 
														
															     mouseTool.value.close(); // 关闭 mouseTool 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     map.value.setDefaultCursor("default"); 
														 | 
														
														 | 
														
															     map.value.setDefaultCursor("default"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    startDraw.value = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    updateClusterData(true) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 清除框选 
														 | 
														
														 | 
														
															 // 清除框选 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -207,81 +301,130 @@ const clearSelection = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         map.value.remove(selectedArea.value); // 移除框选区域 
														 | 
														
														 | 
														
															         map.value.remove(selectedArea.value); // 移除框选区域 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         selectedArea.value = null; 
														 | 
														
														 | 
														
															         selectedArea.value = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    resetData()                                                                                                                                                                                                                                                                                                                                       
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    resetData(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     selectedPoints.value = []; // 清空选中的点位 
														 | 
														
														 | 
														
															     selectedPoints.value = []; // 清空选中的点位 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 检查框选区域内的点位 
														 | 
														
														 | 
														
															 // 检查框选区域内的点位 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const checkPointsInArea = () => { 
														 | 
														
														 | 
														
															 const checkPointsInArea = () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (!selectedArea.value) return; 
														 | 
														
														 | 
														
															     if (!selectedArea.value) return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log('selectedArea.value', selectedArea.value); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     const bounds = selectedArea.value.getBounds(); // 获取框选区域的边界 
														 | 
														
														 | 
														
															     const bounds = selectedArea.value.getBounds(); // 获取框选区域的边界 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     selectedPoints.value = allPoints.value.filter((point) => { 
														 | 
														
														 | 
														
															     selectedPoints.value = allPoints.value.filter((point) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return bounds.contains(point.lnglat); // 判断点位是否在框选区域内 
														 | 
														
														 | 
														
															         return bounds.contains(point.lnglat); // 判断点位是否在框选区域内 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }); 
														 | 
														
														 | 
														
															     }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    selectedPoints.value.forEach(item =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(item.type==='defalutIcon'){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.icon.setContent(createMarkerImg()) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.icon.setOffset(new window.AMap.Pixel(-18, -18)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.type = 'activeIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.icon.setContent(createMarkerContent(item.color)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.icon.setOffset(new window.AMap.Pixel(-7, -7)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            item.type = 'defalutIcon' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    selectedPoints.value.forEach((item) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (item.type === "defalutIcon") { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            item.icon.setContent(createMarkerImg()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // item.icon.setOffset(new window.AMap.Pixel(-18, -18)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            item.type = "activeIcon"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            item.icon.setContent(createMarkerContent(item.color)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // item.icon.setOffset(new window.AMap.Pixel(-7, -7)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            item.type = "defalutIcon"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-const totalList = ref([]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const totalList = ref([]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function getSelectPoint(){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    totalList.value = selectedPoints.value.concat(pointList.value) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    const arr = totalList.value.filter(item =>item.type==='activeIcon') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    return arr 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function getSelectPoint() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    totalList.value = selectedPoints.value.concat(pointList.value); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const arr = totalList.value.filter((item) => item.type === "activeIcon"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return arr; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function getRegionList(farmId) { 
														 | 
														
														 | 
														
															 function getRegionList(farmId) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    VE_API.region.list({farmId}).then(({data}) =>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        data.map(item => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            addPolygon(wktToAmapPolygon(item.wkt)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 先清除所有现有多边形 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    clearAllPolygons(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    VE_API.region.list({ farmId }).then(({ data }) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        data.map((item) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 分区区域 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            addPolygon(wktToAmapPolygon(item.wkt)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 分区名称 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            new window.AMap.Marker({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                position: convertPointToArray(item.pointWkt), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                map: map.value, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                content: createTextContent(item), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                zIndex: 99, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                offset: new window.AMap.Pixel(-80, -10), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+let polygons = []; // 存储所有多边形实例的数组 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function addPolygon(data) { 
														 | 
														
														 | 
														
															 function addPolygon(data) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let polygon = new window.AMap.Polygon({ 
														 | 
														
														 | 
														
															     let polygon = new window.AMap.Polygon({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      path: data, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      fillColor: '#FFE17E', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      strokeOpacity: 1, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      fillOpacity: 0.1, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      strokeColor: 'rgba(255, 255, 255, 0.3)', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      strokeWeight: 1, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      strokeStyle: 'solid', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //   strokeDasharray: [5, 5], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        path: data, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        fillColor: "#FFE17E", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        strokeOpacity: 1, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        fillOpacity: 0.1, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        strokeColor: "rgba(255, 255, 255, 0.3)", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        strokeWeight: 1, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        strokeStyle: "solid", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //   strokeDasharray: [5, 5], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }); 
														 | 
														
														 | 
														
															     }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    map.value.add(polygon) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    map.value.add(polygon); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    polygons.push(polygon); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-defineExpose({getSelectPoint,initData,startRectangleSelection,stopDrawRectangle,clearSelection, getRegionList}) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 清除所有多边形函数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function clearAllPolygons() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (polygons.length > 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        polygons.forEach((polygon) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            map.value.remove(polygon); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        polygons = []; // 清空数组 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 分区名称 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function createTextContent(item) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    console.log("item", item); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return ` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        <div class="area-name"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            ${item.name} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            <div class="area-count" style="display: ${item.pointCount ? "block" : "none"}"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            ${item.pointCount}/${item.pointCount} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        </div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    `; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+defineExpose({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    getSelectPoint, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    initData, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    initMap, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    startRectangleSelection, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    stopDrawRectangle, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    clearSelection, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    getRegionList, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 组件挂载时初始化地图 
														 | 
														
														 | 
														
															 // 组件挂载时初始化地图 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 onMounted(() => { 
														 | 
														
														 | 
														
															 onMounted(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    initMap() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // nextTick(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //     initMap(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }); 
														 | 
														
														 | 
														
															 }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-onUnmounted(()=>{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    map.value.destroy()// 销毁地图实例以释放资源 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+onUnmounted(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    map.value.destroy(); // 销毁地图实例以释放资源 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function wktToAmapPolygon(wkt) { 
														 | 
														
														 | 
														
															 function wktToAmapPolygon(wkt) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     const geoJSON = wellknown.parse(wkt); 
														 | 
														
														 | 
														
															     const geoJSON = wellknown.parse(wkt); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if (!geoJSON || geoJSON.type !== 'MultiPolygon') { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        console.error('Invalid WKT or not a MULTIPOLYGON'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (!geoJSON || geoJSON.type !== "MultiPolygon") { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        console.error("Invalid WKT or not a MULTIPOLYGON"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return []; 
														 | 
														
														 | 
														
															         return []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // MULTIPOLYGON 的坐标结构:[[[ [环1], [环2], ... ]]],取第一个环 
														 | 
														
														 | 
														
															     // MULTIPOLYGON 的坐标结构:[[[ [环1], [环2], ... ]]],取第一个环 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    return geoJSON.coordinates[0][0].map(coord => [coord[0], coord[1]]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return geoJSON.coordinates[0][0].map((coord) => [coord[0], coord[1]]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 </script> 
														 | 
														
														 | 
														
															 </script> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -291,3 +434,29 @@ function wktToAmapPolygon(wkt) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     height: 100%; 
														 | 
														
														 | 
														
															     height: 100%; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 </style> 
														 | 
														
														 | 
														
															 </style> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+<style lang="less"> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+.area-name { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    width: 155px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    height: 40px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    line-height: 40px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    font-size: 30px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    color: #fff; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    font-family: "PangMenZhengDao"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    text-align: center; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    position: relative; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    background: linear-gradient(90deg, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.1) 100%); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+.area-count { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    position: absolute; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    font-family: "PangMenZhengDao"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    left: calc(100% - 48px); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    top: -22px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    font-size: 16px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    padding: 0px 12px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    height: 32px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    line-height: 32px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    border-radius: 40px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    background: linear-gradient(162deg, #ffcf80, #d18100); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+</style> 
														 |