| | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | |
| | | '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: 0, // 地图俯仰角度,有效范围 0 度- 83 度 |
| | | viewMode: '3D', // 地图模式 |
| | | resizeEnable: true, |
| | | center: [121.6039283, 31.25295567], |
| | | zooms: [2, 26], |
| | | zoom: 14 |
| | | }); |
| | | zoom: 11, |
| | | }) |
| | | // 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]) |
| | | |
| | | // _initMouseTool(); |
| | | // _init3DLayer(); |
| | |
| | | |
| | | // 鼠标绘图初始化 |
| | | 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 { |
| | |
| | | onMapMounted, |
| | | map, |
| | | AMap, |
| | | satellite, |
| | | mouseTool, |
| | | object3Dlayer, |
| | | isDragging |
| | | }; |
| | | isDragging, |
| | | } |