餐饮油烟智能监测与监管一体化平台
riku
2026-03-12 723be8e0896fbf7e9456a5defb44911a3d0cbc27
src/utils/map/index.js
@@ -1,28 +1,28 @@
import AMapLoader from '@amap/amap-jsapi-loader';
import AMapLoader from '@amap/amap-jsapi-loader'
var mapInitDone = false;
var onMapMountedEvents = [];
var mapInitDone = false
var onMapMountedEvents = []
var AMap;
var AMap
// 地图对象
var map;
var map
// 卫星图层
var satellite;
var satellite
// 鼠标绘图
var mouseTool;
var mouseTool
// 3D图层
var object3Dlayer;
var object3Dlayer
// 地图拖动状态
var isDragging = false;
var isDragging = false
// 地图加载完成触发
function onMapMounted(...events) {
  if (mapInitDone) {
    events.forEach((e) => {
      e();
    });
      e()
    })
  } else {
    onMapMountedEvents = onMapMountedEvents.concat(events);
    onMapMountedEvents = onMapMountedEvents.concat(events)
  }
}
@@ -36,50 +36,51 @@
      'AMap.ControlBar',
      'AMap.ToolBar',
      'AMap.Scale',
      'AMap.DistrictSearch'
      'AMap.DistrictSearch',
      // 'AMap.DragRoute',
      // 'AMap.MouseTool',
      // 'AMap.PolygonEditor'
    ]
    ],
  })
    .then((_AMap) => {
      AMap = _AMap;
      _initMap(id);
      mapInitDone = true;
      AMap = _AMap
      _initMap(id)
      mapInitDone = true
      onMapMountedEvents.forEach((e) => {
        e();
      });
      onMapMountedEvents = [];
      console.log('-------------------map init done');
        e()
      })
      onMapMountedEvents = []
      console.log('-------------------map init done')
    })
    .catch((e) => {
      console.log(e);
    });
      console.log(e)
    })
}
function destroyMap() {
  map?.destroy();
  map = null;
  mapInitDone = false;
  map?.destroy()
  map = null
  mapInitDone = false
}
function _initMap(elementId) {
  map = new AMap.Map(elementId, {
    // mapStyle: 'amap://styles/e1e78509de64ddcd2efb4cb34c6fae2a',
    features: ['bg', 'road'],
    pitch: 45, // 地图俯仰角度,有效范围 0 度- 83 度
    viewMode: '2D', // 地图模式
    pitch: 30, // 地图俯仰角度,有效范围 0 度- 83 度
    viewMode: '3D', // 地图模式
    resizeEnable: true,
    center: [121.6039283, 31.25295567],
    zooms: [2, 26],
    zoom: 14
  });
    zoom: 14,
  })
  // map = new AMap.Map(elementId);
  // 添加卫星地图
  satellite = new AMap.TileLayer.Satellite();
  satellite.hide();
  map.add([satellite]);
  satellite = new AMap.TileLayer.Satellite()
  const roadNet = new AMap.TileLayer.RoadNet()
  // satellite.hide()
  map.add([satellite, roadNet])
  // _initMouseTool();
  // _init3DLayer();
@@ -88,36 +89,27 @@
// 鼠标绘图初始化
function _initMouseTool() {
  mouseTool = new AMap.MouseTool(map);
  mouseTool = new AMap.MouseTool(map)
}
// 3D图层初始化
function _init3DLayer() {
  object3Dlayer = new AMap.Object3DLayer();
  map.add(object3Dlayer);
  object3Dlayer = new AMap.Object3DLayer()
  map.add(object3Dlayer)
}
// 设置地图拖拽监听事件
function _initDragEvent() {
  let dragEndEvent;
  let dragEndEvent
  map.on('dragstart', () => {
    clearTimeout(dragEndEvent);
    isDragging = true;
  });
    clearTimeout(dragEndEvent)
    isDragging = true
  })
  map.on('dragend', function () {
    dragEndEvent = setTimeout(() => {
      isDragging = false;
    }, 8000);
  });
      isDragging = false
    }, 8000)
  })
}
export {
  createMap,
  destroyMap,
  onMapMounted,
  map,
  AMap,
  mouseTool,
  object3Dlayer,
  isDragging
};
export { createMap, destroyMap, onMapMounted, map, AMap, mouseTool, object3Dlayer, isDragging }