129 lines
4.1 KiB
JavaScript
129 lines
4.1 KiB
JavaScript
import mapConstants from '@/consts/map.js';
|
|
import settings from '@/lib/settings.js';
|
|
|
|
import {
|
|
loadLeafletMapAssets,
|
|
createLeafletMapHolder,
|
|
createLeafletMapInstance,
|
|
setLeafletMapCenterTo,
|
|
setLeafletMapCenterMaker,
|
|
removeLeafletMapCenterMaker
|
|
} from './leaflet.js';
|
|
|
|
import {
|
|
loadGoogleMapAssets,
|
|
createGoogleMapHolder,
|
|
createGoogleMapInstance,
|
|
setGoogleMapCenterTo,
|
|
setGoogleMapCenterMaker,
|
|
removeGoogleMapCenterMaker
|
|
} from './googlemap.js';
|
|
|
|
import {
|
|
loadBaiduMapAssets,
|
|
createBaiduMapHolder,
|
|
createBaiduMapInstance,
|
|
setBaiduMapCenterTo,
|
|
setBaiduMapCenterMaker,
|
|
removeBaiduMapCenterMaker
|
|
} from './baidumap.js';
|
|
|
|
import {
|
|
loadAmapAssets,
|
|
createAmapHolder,
|
|
createAmapInstance,
|
|
setAmapCenterTo,
|
|
setAmapCenterMaker,
|
|
removeAmapCenterMaker
|
|
} from './amap.js';
|
|
|
|
export function loadMapAssets(language) {
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
return loadLeafletMapAssets(language);
|
|
} else if (settings.getMapProvider() === 'googlemap') {
|
|
return loadGoogleMapAssets(language);
|
|
} else if (settings.getMapProvider() === 'baidumap') {
|
|
return loadBaiduMapAssets(language);
|
|
} else if (settings.getMapProvider() === 'amap') {
|
|
return loadAmapAssets(language);
|
|
}
|
|
}
|
|
|
|
export function createMapHolder() {
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
return createLeafletMapHolder(settings.getMapProvider());
|
|
} else if (settings.getMapProvider() === 'googlemap') {
|
|
return createGoogleMapHolder(settings.getMapProvider());
|
|
} else if (settings.getMapProvider() === 'baidumap') {
|
|
return createBaiduMapHolder(settings.getMapProvider());
|
|
} else if (settings.getMapProvider() === 'amap') {
|
|
return createAmapHolder(settings.getMapProvider());
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function initMapInstance(mapHolder, mapContainer, options) {
|
|
if (!mapHolder) {
|
|
return;
|
|
}
|
|
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
createLeafletMapInstance(mapHolder, mapContainer, options);
|
|
} else if (mapHolder.mapProvider === 'googlemap') {
|
|
createGoogleMapInstance(mapHolder, mapContainer, options);
|
|
} else if (mapHolder.mapProvider === 'baidumap') {
|
|
createBaiduMapInstance(mapHolder, mapContainer, options);
|
|
} else if (mapHolder.mapProvider === 'amap') {
|
|
createAmapInstance(mapHolder, mapContainer, options);
|
|
}
|
|
}
|
|
|
|
export function setMapCenterTo(mapHolder, center, zoomLevel) {
|
|
if (!mapHolder) {
|
|
return;
|
|
}
|
|
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
setLeafletMapCenterTo(mapHolder, center, zoomLevel);
|
|
} else if (mapHolder.mapProvider === 'googlemap') {
|
|
setGoogleMapCenterTo(mapHolder, center, zoomLevel);
|
|
} else if (mapHolder.mapProvider === 'baidumap') {
|
|
setBaiduMapCenterTo(mapHolder, center, zoomLevel);
|
|
} else if (mapHolder.mapProvider === 'amap') {
|
|
setAmapCenterTo(mapHolder, center, zoomLevel);
|
|
}
|
|
}
|
|
|
|
export function setMapCenterMarker(mapHolder, position) {
|
|
if (!mapHolder) {
|
|
return;
|
|
}
|
|
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
setLeafletMapCenterMaker(mapHolder, position);
|
|
} else if (mapHolder.mapProvider === 'googlemap') {
|
|
setGoogleMapCenterMaker(mapHolder, position);
|
|
} else if (mapHolder.mapProvider === 'baidumap') {
|
|
setBaiduMapCenterMaker(mapHolder, position);
|
|
} else if (mapHolder.mapProvider === 'amap') {
|
|
setAmapCenterMaker(mapHolder, position);
|
|
}
|
|
}
|
|
|
|
export function removeMapCenterMarker(mapHolder) {
|
|
if (!mapHolder) {
|
|
return;
|
|
}
|
|
|
|
if (mapConstants.leafletTileSources[settings.getMapProvider()]) {
|
|
removeLeafletMapCenterMaker(mapHolder);
|
|
} else if (mapHolder.mapProvider === 'googlemap') {
|
|
removeGoogleMapCenterMaker(mapHolder);
|
|
} else if (mapHolder.mapProvider === 'baidumap') {
|
|
removeBaiduMapCenterMaker(mapHolder);
|
|
} else if (mapHolder.mapProvider === 'amap') {
|
|
removeAmapCenterMaker(mapHolder);
|
|
}
|
|
}
|