{"version":3,"file":"dep-f6008f8c.mjs","sources":["../../src/base-map/useLayerManager/useTrailLayer.ts"],"sourcesContent":["/**\n * @Description: 数据可视化轨迹图接口，https://lbs.qq.com/webApi/visualizationApi/visualizationDoc/visualizationDocTrail#2\n * @date 2022/9/6\n * @params\n*/\nimport { Ref, WatchStopHandle } from 'vue';\nimport omit from 'lodash/omit';\nimport isNumber from 'lodash/isNumber';\nimport { LAYER_CONFIG_OMIT_PROP } from '../constants';\nconst reInitProps = ['enableHighlightPoint'];\nexport default function useTrailLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<TrailLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config || !TMap.visualization?.Trail) return;\n\n  const options = omit(layerInfo.value.config, LAYER_CONFIG_OMIT_PROP);\n\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  const trailOptions = {\n    ...omit(options, 'zoomRange', 'gradientColor'),\n    width: isNumber(options.width) ? options.width : undefined,\n    showDuration: options.showDuration,\n    playRate: options.playRate,\n    playTimes: options.playTimes,\n    minZoom: options.zoomRange?.[0],\n    maxZoom: options.zoomRange?.[1],\n    color: options.color,\n    enableHighlightPoint: options.enableHighlightPoint,\n  };\n\n  let trailLayer = new TMap.visualization.Trail(trailOptions);\n  trailLayer.addTo(mapInstance);\n\n  unwatchList.push(watchEffect(() => {\n    try {\n      // seiya 此处setData 空数据有bug，兼容处理：空数据的时候隐藏，\n      if (layerInfo.value.config.data.length === 0) {\n        trailLayer?.hide();\n      } else {\n        trailLayer?.show();\n        trailLayer?.setData(layerInfo.value.config.data);\n      }\n    } catch (error) {\n      trailLayer?.setData([]);\n    }\n  }));\n  Object.keys(options).forEach((key) => {\n    unwatchList?.push(watch(() => layerInfo.value.config[key], (newVal) => {\n      // 部分属性没有对应set方法,需要重新初始化地图\n      if (reInitProps.includes(key)) {\n        trailLayer = new TMap.visualization.Trail(trailOptions);\n        return;\n      }\n      trailOptionsHandlers[key](newVal, trailLayer);\n    }, { deep: true }));\n  });\n\n  trailLayer.unmount = (): void => {\n    trailLayer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return trailLayer;\n}\n// 对轨迹图层每个属性响应\nconst trailOptionsHandlers = {\n  width(val: number, layerInstance: LooseObject): void {\n    if (!isNumber(val)) {\n      console.warn('请传入数字类型，当前传入的是：', val);\n      return;\n    }\n    layerInstance.setPickStyle((item: any) =>\n      // 轨迹图样式映射函数\n      ({\n        width: val,\n        color: layerInstance.getPickStyle(item).color || '#387CEA',\n      }));\n  },\n  color(val: LooseObject | string, layerInstance: LooseObject): void {\n    if (!val) return;\n    layerInstance.setPickStyle((item: any) =>\n    // 轨迹图样式映射函数\n      ({\n        width: layerInstance.getPickStyle(item).width || 4,\n        color: typeof val === 'string'\n          ? val\n          : new TMap.GradientColor({\n            stops: val,\n          }),\n      }));\n  },\n  showDuration(val: number, layerInstance: LooseObject): void {\n    layerInstance.setShowDuration(val);\n  },\n  playRate(val: number, layerInstance: LooseObject): void {\n    layerInstance.setPlayRate(val);\n  },\n  playTimes(val: number, layerInstance: LooseObject): void {\n    layerInstance.setPlayTimes(val);\n  },\n  zoomRange(val: TrailLayerConfig['zoomRange'], layerInstance: LooseObject): void {\n    layerInstance.setMinZoom(val?.[0]);\n    layerInstance.setMaxZoom(val?.[1]);\n  },\n};\n"],"names":["reInitProps","useTrailLayer","mapInstance","layerInfo","value","config","TMap","visualization","Trail","options","omit","LAYER_CONFIG_OMIT_PROP","unwatchList","trailOptions","width","isNumber","showDuration","playRate","playTimes","minZoom","zoomRange","maxZoom","color","enableHighlightPoint","trailLayer","addTo","push","watchEffect","data","length","hide","show","setData","error","Object","keys","forEach","key","watch","newVal","includes","trailOptionsHandlers","deep","unmount","destroy","unwatch","val","layerInstance","console","warn","setPickStyle","item","getPickStyle","GradientColor","stops","setShowDuration","setPlayRate","setPlayTimes","setMinZoom","setMaxZoom"],"mappings":"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"}