|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|