From 3667807a7b7418efc090ee3fa6a6b734bc3080bf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 13 Sep 2023 20:36:29 +0800
Subject: [PATCH] Merge branch 'develop' of http://s16s652780.51mypc.cn:49896/r/yskj/iot_drone_web into develop

---
 src/hooks/use-g-map-tsa.ts |   69 ++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 28 deletions(-)

diff --git a/src/hooks/use-g-map-tsa.ts b/src/hooks/use-g-map-tsa.ts
index 55b1b59..f71217c 100644
--- a/src/hooks/use-g-map-tsa.ts
+++ b/src/hooks/use-g-map-tsa.ts
@@ -1,49 +1,59 @@
 import store from '/@/store'
 import { getRoot } from '/@/root'
-import { ELocalStorageKey } from '/@/types'
+import { ELocalStorageKey, EDeviceTypeName } from '/@/types'
 import { getDeviceBySn } from '/@/api/manage'
 import { message } from 'ant-design-vue'
+import dockIcon from '/@/assets/icons/dock.png'
+import rcIcon from '/@/assets/icons/rc.png'
+import droneIcon from '/@/assets/icons/drone.png'
 
 export function deviceTsaUpdate () {
   const root = getRoot()
-  const AMap = root.$aMapObj
+  let AMap = root.$aMap
 
-  const map = root.$aMap
-  const icons: {
-    [key: string]: string
-  } = {
-    'sub-device' : '/@/assets/icons/drone.png',
-    'gateway': '/@/assets/icons/rc.png',
-    'dock': '/@/assets/icons/dock.png'
-  }
+  const icons = new Map([
+    [EDeviceTypeName.Aircraft, droneIcon],
+    [EDeviceTypeName.Gateway, rcIcon],
+    [EDeviceTypeName.Dock, dockIcon]
+  ])
   const markers = store.state.markerInfo.coverMap
   const paths = store.state.markerInfo.pathMap
-  
-  const passedPolyline = new AMap.Polyline({
-    map: map,
-    strokeColor: '#939393' // 线颜色
-  })
 
-  function initIcon (type: string) {
+  let trackLine = null as any
+  function getTrackLineInstance () {
+    if (!trackLine) {
+      trackLine = new AMap.Polyline({
+        map: root.$map,
+        strokeColor: '#939393' // 线颜色
+      })
+    }
+    return trackLine
+  }
+
+  function initIcon (type: number) {
     return new AMap.Icon({
-      image: icons[type],
-      imageSize: new AMap.Size(40, 40)
+      image: icons.get(type),
+      imageSize: new AMap.Size(40, 40),
+      size: new AMap.Size(40, 40)
     })
   }
 
-  function initMarker (type: string, name: string, sn: string, lng?: number, lat?: number) {
+  function initMarker (type: number, name: string, sn: string, lng?: number, lat?: number) {
     if (markers[sn]) {
       return
     }
+    if (root.$aMap === undefined) {
+      return
+    }
+    AMap = root.$aMap
     markers[sn] = new AMap.Marker({
-      position: new AMap.LngLat(lng ? lng : 113.935913, lat ? lat : 22.525335),
+      position: new AMap.LngLat(lng || 113.943225499, lat || 22.577673716),
       icon: initIcon(type),
       title: name,
       anchor: 'top-center',
       offset: [0, -20],
     })
-    root.$aMap.add(markers[sn])
-
+    root.$map.add(markers[sn])
     // markers[sn].on('moving', function (e: any) {
     //   let path = paths[sn]
     //   if (!path) {
@@ -52,19 +62,21 @@
     //   }
     //   path.push(e.passedPath[0])
     //   path.push(e.passedPath[1])
-    //   passedPolyline.setPath(path)
+    //   getTrackLineInstance().setPath(path)
     // })
   }
+
   function removeMarker (sn: string) {
     if (!markers[sn]) {
       return
     }
-    root.$aMap.remove(markers[sn])
-    passedPolyline.setPath([])
+    root.$map.remove(markers[sn])
+    getTrackLineInstance().setPath([])
     delete markers[sn]
     delete paths[sn]
   }
-  function addMarker(sn: string, lng?: number, lat?: number) {
+
+  function addMarker (sn: string, lng?: number, lat?: number) {
     getDeviceBySn(localStorage.getItem(ELocalStorageKey.WorkspaceId)!, sn)
       .then(data => {
         if (data.code !== 0) {
@@ -74,7 +86,8 @@
         initMarker(data.data.domain, data.data.nickname, sn, lng, lat)
       })
   }
-  function moveTo(sn: string, lng: number, lat: number) {
+
+  function moveTo (sn: string, lng: number, lat: number) {
     let marker = markers[sn]
     if (!marker) {
       addMarker(sn, lng, lat)
@@ -86,7 +99,7 @@
       autoRotation: true
     })
   }
-  
+
   return {
     marker: markers,
     initMarker,

--
Gitblit v1.9.3