const mapSupplier: number = 1; //1:高德 import { IMap, IMapOptions, IMarker, IPixel, IMarkOptions, ILngLat, ILayer, ICircle, IMarkerCluster, IRenderClusterMarker, IInfoWindow, IMouseTool, IIcon, ISize, IIconOptions, ITileLayer, IDriving, IDrivingOptions, IAutocomplete, IPlaceSearch } from './map' import { GaodeCircle, GaodeIcon, GaodeInfoWindow, GaodeLayer, GaoDeLngLat, GaoDeMap, GaoDeMarker, GaoDeMarkerCluster, GaodeMouseTool, GaoDePixel, GaoDeRenderClusterMarker, GaodeTileLayer, GaodeSize, GaodeDriving, GaodeAutocomplete, GaodePlaceSearch } from './gaode-map' import { KeDaLngLat, KeDaMap, KeDaMarker, KeDaPixel } from './keda-map'; import MapTools from './map-tools'; export class MapFactory { public static MapInstance(container: string, options: IMapOptions | any): IMap { let config = MapTools.ExplicitConvert(options); switch (mapSupplier) { case 1: return new GaoDeMap(container, config); case 2: return new KeDaMap(container, config); default: return null; } } public static PixelInstance(x: number, y: number): IPixel { switch (mapSupplier) { case 1: return new GaoDePixel(x, y); case 2: return new KeDaPixel(x, y); default: return null; } } public static MarkerInstance(options: IMarkOptions): IMarker { switch (mapSupplier) { case 1: return new GaoDeMarker(options); case 2: return new KeDaMarker(options); default: return null; } } public static MarkerClusterInstance(map: IMap, list: Object[], renderObj: { gridSize: number, render: IRenderClusterMarker }): IMarkerCluster { switch (mapSupplier) { case 1: return new GaoDeMarkerCluster(map, list, renderObj); default: return null; } } public static LngLatInstance(x: number, y: number): ILngLat { switch (mapSupplier) { case 1: return new GaoDeLngLat(x, y); case 2: return new KeDaLngLat(x, y); default: return null; } } public static IconInstance(options: IIconOptions): IIcon { switch (mapSupplier) { case 1: return new GaodeIcon(options); default: return null; } } public static SizeInstance(x: number, y: number): ISize { switch (mapSupplier) { case 1: return new GaodeSize(x, y); default: return null; } } public static TileLayerInstance(): ITileLayer { switch (mapSupplier) { case 1: return new GaodeTileLayer(); default: return null; } } public static LayerInstance(options: any): ILayer { switch (mapSupplier) { case 1: return new GaodeLayer(options); default: return null; } } public static DrivingInstance(options: IDrivingOptions): IDriving { switch (mapSupplier) { case 1: return new GaodeDriving(options); default: return null; } } public static AutocompleteInstance(city: Object): IAutocomplete { switch (mapSupplier) { case 1: return new GaodeAutocomplete(city); default: return null; } } public static PlaceSearchInstance(): IPlaceSearch { switch (mapSupplier) { case 1: return new GaodePlaceSearch(); default: return null; } } public static MouseToolInstance(map: IMap): IMouseTool { switch (mapSupplier) { case 1: return new GaodeMouseTool(map); default: return null; } } public static InfoWindowInstance(options: any): IInfoWindow { switch (mapSupplier) { case 1: return new GaodeInfoWindow(options); default: return null; } } public static CircleInstance(options: any): ICircle { switch (mapSupplier) { case 1: return new GaodeCircle(options); default: return null; } } public static RenderClusterMarkerInstance(): IRenderClusterMarker { switch (mapSupplier) { case 1: return new GaoDeRenderClusterMarker(); default: return null; } } }