const elasticMarker = function (mapInstance: any, elasticObj: any) {
  if (!elasticObj.labelZoom) {
    const arr = Object.keys(elasticObj.zoomStyleMapping);
    elasticObj.labelZoom = arr[arr.length - 1];
  }
  new mapInstance.AMap.ElasticMarker({
    map: mapInstance.map,
    position: elasticObj.lnglat,
    zooms: elasticObj.zooms,
    styles: [
      {
        icon: {
          img: elasticObj.smallIcon,
          size: elasticObj.size, //原始图片大小
          anchor: 'center', //锚点，图标原始大小下锚点所处的位置，相对左上角
          fitZoom: elasticObj.fitZoom, //最合适的级别，在此级别下显示为原始大小
          scaleFactor: 2, //地图放大一级的缩放比例系数
          maxScale: 2, //最大放大比例
          minScale: 0.125, //最小放大比例
        },
        label: {
          content: elasticObj.label,
          position: 'BM',
        },
      },
      {
        icon: {
          img: elasticObj.bigIcon,
          size: elasticObj.size,
          anchor: 'center',
          fitZoom: elasticObj.fitZoom,
          scaleFactor: 2,
          maxScale: 2,
          minScale: 0.125,
        },
        label: {
          content: elasticObj.label,
          position: 'BM',
        },
      },
    ],
    zoomStyleMapping: elasticObj.zoomStyleMapping,
  });
};
export default elasticMarker;
