import AMapLoader from '@amap/amap-jsapi-loader'

export default function useMapInit(
  center = [115.94393, 28.54559],
  containerId: string,
  options?: object,
  plugins?: any[]
) {
  console.log(center)
  return new Promise((resolve, reject) => {
    console.log('initmap')
    //@ts-ignore
    window._AMapSecurityConfig = {
      // securityJsCode: "2bf102f50b193a7b1e67ad563a98ad76"
      securityJsCode: 'fb811f3c271a305025b0f95fd4817635'
    }

    AMapLoader.load({
      // key: "147364b1245d25e8df44278a4bb1e96a", // 申请好的Web端开发者Key，首次调用 load 时必填
      key: 'c73bccc87d2ae5998db5acf2d183128f', // 申请好的Web端开发者Key，首次调用 load 时必填
      // version: '1.4.15', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
      version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
      plugins: plugins || [],
      // plugins: [
      //   'AMap.MoveAnimation'
      //   // "AMap.Scale",
      //   // "AMap.PlaceSearch",
      //   // "AMap.AutoComplete",
      //   // "AMap.Geocoder"
      // ], //需要使用的的插件列表，如比例尺'AMap.Scale'，支持添加多个如：['...','...']
      AMapUI: {
        // 是否加载 AMapUI，缺省不加载
        // version: "1.1", // AMapUI 版本
        // plugins: ["misc/PathSimplifier"] // 需要加载的 AMapUI ui插件
      }
    })
      .then((AMap) => {
        console.log('center', center)
        // console.log(currentCenter.value, 'props.points')
        // console.log(lineArr.value, 'lineArr')
        const mapSy = new AMap.Map(containerId, {
          // 设置地图容器id
          resizeEnable: true,
          // viewMode: '3D', // 是否为3D地图模式
          zoom: 12, // 初始化地图级别
          center: [115.94393, 28.54559], // 初始化地图中心点位置
          layers: options?.isLayers
            ? [
                // 卫星
                new AMap.TileLayer.Satellite(),
                // 路网
                new AMap.TileLayer.RoadNet()
              ]
            : [],
          ...options
        })
        AMap.plugin(['AMap.ToolBar'], function () {
          // 在图面添加工具条控件，工具条控件集成了缩放、平移、定位等功能按钮在内的组合控件
          mapSy.addControl(
            new AMap.ToolBar({
              // 简易缩放模式，默认为 false
              liteStyle: true
            })
          )
        })
        resolve({ mapSy, AMap })
      })
      .catch((error) => {
        console.log(error, 'map error!!!!!')
        reject(error)
      })
  })
}
