migrate map code to typescript

This commit is contained in:
MaysWind
2025-01-05 03:10:41 +08:00
parent a46399cbaf
commit 16fa77eb09
17 changed files with 919 additions and 912 deletions
+36
View File
@@ -0,0 +1,36 @@
import { LEAFLET_TILE_SOURCES } from '@/consts/map.ts';
import { getMapProvider } from '@/lib/server_settings.ts';
import type { MapProvider, MapInstance } from './base.ts';
import { LeafletMapProvider } from './leaflet.ts';
import { GoogleMapProvider } from './googlemap.ts';
import { BaiduMapProvider } from './baidumap.ts';
import { AmapMapProvider } from './amap.ts';
let mapProvider: MapProvider | null = null;
export function initMapProvider(language: string): void {
const mapProviderType = getMapProvider();
if (LEAFLET_TILE_SOURCES[mapProviderType] || mapProviderType === 'custom') {
mapProvider = new LeafletMapProvider(mapProviderType);
} else if (mapProviderType === 'googlemap') {
mapProvider = new GoogleMapProvider();
} else if (mapProviderType === 'baidumap') {
mapProvider = new BaiduMapProvider();
} else if (mapProviderType === 'amap') {
mapProvider = new AmapMapProvider();
}
if (mapProvider) {
mapProvider.asyncLoadAssets(language);
}
}
export function getMapWebsite(): string {
return mapProvider?.getWebsite() || '';
}
export function createMapInstance(): MapInstance | null {
return mapProvider?.createMapInstance() || null;
}