{"version":3,"file":"useMVTLayer.mjs","sources":["../../../src/base-map/useLayerManager/useMVTLayer.ts"],"sourcesContent":["import { Ref, WatchStopHandle } from 'vue';\nimport { mvtMarkerStyle, mvtLineStyle, mvtPolygonStyle } from '../constants';\n\nexport default function useMVTLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<MVTLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config) return;\n  const { id, zIndex, maxzoom, layerType, tiles, sourceLayer } = layerInfo.value.config;\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  // 获取MVT的type，style\n  let type = layerType;\n  let style = {};\n  if (layerType) {\n    const lowerType = layerType.toLowerCase();\n    if (lowerType.indexOf('marker') !== -1 || lowerType.indexOf('point') !== -1) {\n      type = 'circle';\n      style = mvtMarkerStyle;\n    }\n    if (lowerType.indexOf('line') !== -1) {\n      type = 'line';\n      style = mvtLineStyle;\n    }\n    if (lowerType.indexOf('polygon') !== -1) {\n      type = 'fill';\n      style = mvtPolygonStyle;\n    }\n  }\n\n  let mvtLayer = new TMap.vector.MVTLayer({\n    id,\n    map: mapInstance,\n    zIndex,\n  });\n\n  mvtLayer.addLayer({\n    id,\n    type,\n    // mvt 数据来源\n    source: {\n      type: 'vector',\n      tiles: [tiles],\n      maxzoom,\n    },\n    'source-layer': sourceLayer,\n    paint: { ...style },\n  });\n\n  unwatchList.push(watchEffect(() => {\n    mvtLayer.setMap(null);\n    mvtLayer = new TMap.vector.MVTLayer({\n      id,\n      map: mapInstance,\n      zIndex,\n    });\n    mvtLayer?.addLayer({\n      id,\n      type,\n      source: {\n        type: 'vector',\n        tiles: [tiles],\n        maxzoom,\n      },\n      'source-layer': sourceLayer,\n      paint: { ...style },\n    });\n  }));\n\n  mvtLayer.unmount = (): void => {\n    mvtLayer.setMap(null);\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return mvtLayer;\n}\n"],"names":["useMVTLayer","mapInstance","layerInfo","value","config","id","zIndex","maxzoom","layerType","tiles","sourceLayer","unwatchList","type","style","lowerType","toLowerCase","indexOf","mvtMarkerStyle","mvtLineStyle","mvtPolygonStyle","mvtLayer","TMap","vector","MVTLayer","map","addLayer","source","paint","push","watchEffect","setMap","unmount","forEach","unwatch"],"mappings":"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"}