@mint-ui/map
Version:
- React map library - Control various map with one interface - Google, Naver, Kakao map supported now - Typescript supported - Canvas marker supported
71 lines (70 loc) • 3.35 kB
TypeScript
import { MapType, MapVendorType } from '../types/CommonTypes';
import { Drawable, Marker, MarkerOptions, Polygon, PolygonOptions, Polyline, PolylineOptions } from '../types/MapDrawables';
import { EventCallback, EventParamType, MapEvent, MapEventName, MapUIEvent } from '../types/MapEventTypes';
import { Bounds, Offset, Position, Spacing } from '../types/MapTypes';
import { MintMapProps } from '../types/MintMapProps';
import { Property } from "csstype";
export declare abstract class MintMapController {
abstract type: MapType;
abstract map: MapVendorType | null;
abstract scriptUrl: string;
abstract scriptModules: string[];
abstract initializingMap(divElement: HTMLDivElement): Promise<MapVendorType>;
abstract destroyMap(): void;
abstract loadMapApi(): Promise<boolean>;
abstract getCurrBounds(): Bounds;
abstract panningTo(targetCenter: Position): void;
abstract getZoomLevel(): number;
abstract setZoomLevel(zoom: number): void;
abstract getCenter(): Position;
abstract setCenter(position: Position): void;
abstract setMapCursor(cursor: Property.Cursor): void;
abstract focusPositionsToFitViewport(positions: Position[], spacing?: number | Spacing): void;
abstract createMarker(marker: Marker): void;
abstract updateMarker(marker: Marker, options: MarkerOptions): void;
abstract clearDrawable(drawable: Drawable): boolean;
abstract markerToTheTop(marker: Marker): void;
abstract isMapDragged(): boolean;
abstract setMapDragged(value: boolean): void;
abstract setMarkerZIndex(marker: Marker, zIndex: number): void;
abstract createPolyline(polyline: Polyline): void;
abstract updatePolyline(polyline: Polyline, options: PolylineOptions): void;
abstract createPolygon(polygon: Polygon): void;
abstract updatePolygon(polygon: Polygon, options: PolygonOptions): void;
protected abstract mapEvent: MapEvent;
protected abstract mapUIEvent: MapUIEvent;
abstract addEventListener(eventName: MapEventName, callback: EventCallback<EventParamType>): void;
abstract removeEventListener(eventName: MapEventName, callback: EventCallback<EventParamType>): void;
abstract removeAllEventListener(eventName?: MapEventName): void;
mapProps: MintMapProps;
mapApiLoaded: boolean;
mapInitialized: boolean;
mapDivElement: HTMLDivElement;
constructor(props: MintMapProps);
getMap(): MapVendorType | null;
getMapType(): MapType;
positionToOffset(position: Position): Offset;
offsetToPosition(offset: Offset): Position;
loadScript(url: string, id: string, checkLoaded: () => boolean): Promise<boolean>;
getRandomFunctionName(prefix: string): string;
/**
* URL 빌더 메서드
*
* @param {string} baseUrl: 기본 URL
* @param {{ [ key: string ]: string | string[] }} param: 파라미터 JSON
* @returns {string} URL
*/
buildUrl(baseUrl: string, param: {
[key: string]: string | string[] | boolean;
}): string;
private processedTime;
/**
* 쓰로틀링 처리
* @returns
*/
checkBoundsChangeThrottleTime(): boolean;
getBaseToMapZoom(zoomBase: number): number;
getMapToBaseZoom(mapZoom: number): number;
morph(position: Position, zoom: number, option?: Record<string, unknown>): void;
printStatus(): void;
}