52 lines
1.1 KiB
TypeScript
52 lines
1.1 KiB
TypeScript
|
|
export interface MapOptions {
|
|
center: LatLng;
|
|
zoom: number;
|
|
styleUrl: string;
|
|
tileUrl: string;
|
|
}
|
|
export interface GeoPoint {
|
|
x: number;
|
|
y: number;
|
|
}
|
|
export interface Zone {
|
|
id: string;
|
|
name?: string;
|
|
color?: string;
|
|
opacity?: number;
|
|
polygon: GeoPoint[];
|
|
shippingFee?: number;
|
|
deliverySchedule?: string;
|
|
}
|
|
export interface Address {
|
|
line1: string;
|
|
line2?: string;
|
|
postalCode: string;
|
|
subdivision: string;
|
|
city: string;
|
|
country: string;
|
|
shippingFee?: number;
|
|
deliverySchedule?: string;
|
|
}
|
|
|
|
export type LatLng = [number, number];
|
|
export declare function getLngLat(latLng: LatLng): [number, number];
|
|
export interface IMapAdapter {
|
|
init(container: HTMLElement, options: MapOptions): void;
|
|
setCenter(latLng: LatLng): void;
|
|
setZoom(zoom: number): void;
|
|
addMarker(latLng: LatLng, options?: { id?: string; color?: string }): void;
|
|
removeMarker(id?: string): void;
|
|
destroy(): void;
|
|
addZone(zone: Zone[]): void;
|
|
updateZone(zone: Zone[]): void;
|
|
openZonePopup(zone: Zone) : void
|
|
openAddressPopup(address: Address): void;
|
|
closePopup(): void;
|
|
on(
|
|
type: string,
|
|
event: (e: any) => void,
|
|
): void;
|
|
|
|
}
|