{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/cig-map/src/index.vue"],"sourcesContent":["<template>\n  <div class=\"cig-map\" :style=\"style\">\n    <div class=\"map-box\" :id=\"id\"></div>\n  </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, PropType, reactive, ref, watch } from 'vue'\nimport { initMap } from './map-service'\nimport { mapControl, mapSkill } from './mapApi'\nimport control from './control.js'\nimport {\n  CircleOptions,\n  MarkerOptions,\n  PolygonOptions,\n  PolylineOptions,\n} from './type'\nexport default defineComponent({\n  name: 'ElCigMap',\n  props: {\n    width: {\n      type: String,\n      required: true,\n    },\n    height: {\n      type: String,\n      required: true,\n    },\n    src: {\n      type: String,\n      default:\n        'https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=trmAhlzjterbRHweVEssDAidh0PX7sOG&callback=initialize',\n    },\n    apiName: {\n      type: String,\n      default: 'BMapGL',\n    },\n    defaultOption: {\n      type: Object as PropType<{ lat: number; lng: number }>,\n      default: {\n        lat: 0,\n        lng: 0,\n      },\n    },\n    is3D: {\n      type: Boolean,\n      default: false,\n    },\n    zoom: {\n      type: Boolean,\n      default: false,\n    },\n    scale: {\n      type: Boolean,\n      default: false,\n    },\n    scrollZoom: {\n      type: Boolean,\n      default: false,\n    },\n    dragging: {\n      type: Boolean,\n      default: true,\n    },\n    doubleClickZoom: {\n      type: Boolean,\n      default: true,\n    },\n    zooms: {\n      type: Array as PropType<Array<Number>>,\n      default: () => [],\n    },\n    clear: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  setup(props, ctx) {\n    // init here\n    var map: any = null\n    const id = 'map' + new Date().getTime().toString()\n    const style = reactive({\n      width: props.width,\n      height: props.height,\n    })\n    const mapRef = ref()\n    const mapApi = ref()\n    initMap(props.src, props.apiName).then((res) => {\n      map = res\n      setTimeout(() => {\n        mapApi.value = new map.Map(id)\n        const {\n          navi3DCtrl,\n          switch3DCtrl,\n          zoomCtrl,\n          switchZoomCtrl,\n          setMinZoom,\n          setMaxZoom,\n          scaleCtrl,\n          switchScaleCtrl,\n          clearCtrl,\n          switchClearCtrl,\n        } = mapControl(mapApi, map)\n        // skill\n        const { switchScrollZoom, switchDragging, switchDoubleClickZoom } =\n          mapSkill(mapApi)\n        // 自定义控件类\n\n        navi3DCtrl.value = new map.NavigationControl3D() // 添加3D控件\n        zoomCtrl.value = new map.ZoomControl() // 添加缩放控件\n        scaleCtrl.value = new map.ScaleControl() // 添加比例尺控件\n\n        control.customCtrl.prototype = new map.Control()\n        control.customCtrl.prototype.initialize = function () {\n          var dom = document.createElement('div')\n          dom.appendChild(document.createTextNode(this.buttonText))\n          // 设置样式\n          dom.style.cursor = 'pointer'\n          dom.style.padding = '7px 10px'\n          dom.style.boxShadow = '0 2px 6px 0 rgba(27, 142, 236, 0.5)'\n          dom.style.borderRadius = '5px'\n          dom.style.backgroundColor = 'white'\n          if (this.style) {\n            for (let i in this.style) {\n              dom.style[i as any] = this.style[i]\n            }\n          }\n\n          if (this.listener) {\n            for (let i in this.listener) {\n              dom.addEventListener(i, () => {\n                this.listener[i]()\n              })\n            }\n          }\n          mapApi.value.getContainer().appendChild(dom)\n          return dom\n        }\n        clearCtrl.value = customCtrl(\n          {\n            buttonText: '清空覆盖物',\n            offset: [20, 20],\n          },\n          {},\n          {\n            click: () => {\n              clearOverlay()\n            },\n          }\n        )\n        watch(\n          () => props.is3D,\n          (newV) => {\n            switch3DCtrl(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.zoom,\n          (newV) => {\n            switchZoomCtrl(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.scale,\n          (newV) => {\n            switchScaleCtrl(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.scrollZoom,\n          (newV) => {\n            switchScrollZoom(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.dragging,\n          (newV) => {\n            switchDragging(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.doubleClickZoom,\n          (newV) => {\n            switchDoubleClickZoom(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.zooms,\n          (newV) => {\n            if (newV.length > 1) {\n              setMinZoom(newV[0])\n              setMaxZoom(newV[1])\n            }\n          },\n          {\n            immediate: true,\n          }\n        )\n        watch(\n          () => props.clear,\n          (newV) => {\n            switchClearCtrl(newV)\n          },\n          {\n            immediate: true,\n          }\n        )\n\n        ctx.emit('onLoad', map, mapApi)\n      }, 1500)\n    })\n    let markerList: any[] = []\n    function addPoint(lng: any, lat: any) {\n      return new map.Point(lng, lat)\n    }\n    function addMarker(point: any, options?: MarkerOptions, listener?: any) {\n      const pointMap = addPoint(point.lng, point.lat)\n      const marker = new map.Marker(pointMap, options)\n      const row: any = { row: point, pointMap, marker }\n      const oldRow = markerList.findIndex((x: any) =>\n        x.pointMap.equals(pointMap)\n      )\n      if (oldRow > -1) {\n        throw new Error('当前点位已存在！')\n      } else {\n        mapApi.value.addOverlay(marker)\n        markerList.push(row)\n      }\n      if (listener) {\n        for (let i in listener) {\n          marker.addEventListener(i, () => {\n            // const index = markerList.findIndex(x => x.lat !== point.lat && x.lng !== point.lng)\n            listener[i](row)\n          })\n        }\n      }\n      return marker\n    }\n    function addIcon(url: string, size: Array<number>) {\n      return new map.Icon(url, new map.Size(size[0], size[1]))\n    }\n\n    function removeMarker(point: any) {\n      const oldRow = markerList.findIndex((x) =>\n        x.pointMap.equals(addPoint(point.lng, point.lat))\n      )\n      if (oldRow === -1) {\n        throw new Error('当前点位不存在，无法删除！')\n      } else {\n        mapApi.value.removeOverlay(markerList[oldRow].marker)\n        markerList.splice(oldRow, 1)\n      }\n    }\n    function addLine(\n      line: { [key: string]: any; points: Array<any> },\n      options?: PolylineOptions,\n      listener?: any\n    ) {\n      const polyline = new map.Polyline(line.points, options)\n      mapApi.value.addOverlay(polyline)\n      if (listener) {\n        for (let i in listener) {\n          polyline.addEventListener(i, () => {\n            // const index = markerList.findIndex(x => x.lat !== point.lat && x.lng !== point.lng)\n            listener[i](line)\n          })\n        }\n      }\n      return polyline\n    }\n    function removeLine(line: any) {\n      mapApi.value.removeOverlay(line)\n    }\n\n    function addPolygon(\n      line: { [key: string]: any; points: Array<any> },\n      options?: PolygonOptions,\n      listener?: any\n    ) {\n      const polygon = new map.Polygon(line.points, options)\n      mapApi.value.addOverlay(polygon)\n      if (listener) {\n        for (let i in listener) {\n          polygon.addEventListener(i, () => {\n            // const index = markerList.findIndex(x => x.lat !== point.lat && x.lng !== point.lng)\n            listener[i](line)\n          })\n        }\n      }\n      return polygon\n    }\n\n    function removePolygon(polygon: any) {\n      mapApi.value.removeOverlay(polygon)\n    }\n\n    function addCircle(point: any, options?: CircleOptions, listener?: any) {\n      const circle = new map.Circle(\n        addPoint(point.lat, point.lng),\n        point.radius,\n        options\n      )\n      mapApi.value.addOverlay(circle)\n      if (listener) {\n        for (let i in listener) {\n          circle.addEventListener(i, () => {\n            // const index = markerList.findIndex(x => x.lat !== point.lat && x.lng !== point.lng)\n            listener[i](point)\n          })\n        }\n      }\n      return circle\n    }\n\n    function removeCircle(circle: any) {\n      mapApi.value.removeOverlay(circle)\n    }\n\n    // 清除地图上所有/可选覆盖物\n    function clearOverlay(markers: Array<any> = []) {\n      if (markers.length > 0) {\n        markers.forEach((x: any) => {\n          mapApi.value.removeOverlay(x)\n        })\n      } else {\n        markerList = []\n        mapApi.value.clearOverlays()\n      }\n    }\n    function customCtrl(options?: any, style?: any, listener?: any) {\n      return new (control.customCtrl as any)(map, options, style, listener)\n    }\n    function createCustomCtrl(options?: any, style?: any, listener?: any) {\n      const ctrl = customCtrl(options, style, listener)\n      mapApi.value.addControl(ctrl)\n      return ctrl\n    }\n    // 3D控件对象\n\n    ctx.expose({\n      mapRef: mapRef,\n      mapApi,\n      addMarker,\n      addPoint,\n      addIcon,\n      removeMarker,\n      clearOverlay,\n      addLine,\n      removeLine,\n      addPolygon,\n      removePolygon,\n      addCircle,\n      removeCircle,\n      createCustomCtrl,\n    })\n    return {\n      id,\n      style,\n    }\n  },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_createElementVNode"],"mappings":"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"}