riku
2024-07-16 d00a9f035aec50c37c8e0a1363a1968672fb875f
src/utils/map/marks.js
@@ -3,6 +3,7 @@
 */
import { map, AMap } from './index'
import util from './util'
var _massMarks = undefined
@@ -70,12 +71,12 @@
    map.add(massMarks)
  },
  createLabelMarks(img, dataList) {
  createLabelMarks(img, dataList, onClick) {
    const layer = new AMap.LabelsLayer({
      zooms: [3, 20],
      zIndex: 1000,
      // 开启标注避让,默认为开启,v1.4.15 新增属性
      collision: true,
      collision: false,
      // 开启标注淡入动画,默认为开启,v1.4.15 新增属性
      animation: true
    })
@@ -96,7 +97,7 @@
          image: img,
          // clipOrigin: [14, 92],
          // clipSize: [50, 68],
          size: [30, 30],
          size: [20, 20],
          anchor: 'bottom-center',
          angel: 0,
          retina: true
@@ -106,7 +107,7 @@
          direction: 'top',
          offset: [0, -5],
          style: {
            fontSize: 16,
            fontSize: 12,
            fontWeight: 'normal',
            fillColor: '#fff',
            strokeColor: '#333',
@@ -116,10 +117,21 @@
        }
      }
      curData.extData = {
        index: i
        data: data
      }
      var labelMarker = new AMap.LabelMarker(curData)
      labelMarker.on('click', (event) => {
        console.log(labelMarker.getExtData())
        console.log(event)
        util.setFitView([event.target])
        // util.setZoomSmall()
        // util.setCenter(event.lnglat)
        // 自定义点击事件
        if (typeof onClick === 'function') {
          onClick(event.data.data.extData.data)
        }
      })
      // markers.push(labelMarker);
@@ -127,5 +139,19 @@
    }
    return layer
  },
  drawMarker(title, lnglat, img) {
    const marker = new AMap.Marker({
      position: new AMap.LngLat(lnglat[0], lnglat[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
      title: title,
      // offset: new AMap.Pixel(-13, -12),
      // anchor: 'center',
      icon: new AMap.Icon({
        image: img,
        imageSize: [30, 30]
      })
    })
    map.add(marker)
  }
}