import type { ILngLat, IMarkerContainerAndBounds, IMarkerOption, IPoint, IPopup, RaContainer } from '@ramap/ra-core'; import { anchorType } from '@ramap/ra-utils'; import { EventEmitter } from 'eventemitter3'; export default class Marker extends EventEmitter { private markerOption; private popup; private mapsService; private lngLat; private maplet; private added; private preLngLat; getMarkerLayerContainerSize(): IMarkerContainerAndBounds | void; constructor(option?: Partial); getDefault(): { element: undefined; anchor: anchorType; offsets: number[]; color: string; draggable: boolean; overflowHide: boolean; }; addTo(maplet: RaContainer): this; remove(): this; setLnglat(lngLat: ILngLat | IPoint): this; getLnglat(): ILngLat; getElement(): HTMLElement; setElement(el: HTMLElement): this; openPopup(): this; closePopup(): this; setPopup(popup: IPopup): this; togglePopup(): this; getPopup(): IPopup; getOffset(): number[]; setDraggable(draggable: boolean): void; getDraggable(): boolean; getExtData(): any; setExtData(data: any): void; private update; private updatePositionWhenZoom; private onMapClick; private getCurrentContainerSize; private updateDraggable; private onMarkerDragStart; private onMarkerDragMove; private onMarkerDragEnd; private updatePosition; private init; private registerMarkerEvent; private unRegisterMarkerEvent; private eventHandle; /** * 高德 2.x 使用了 fastClick.js 避免延迟,导致 IOS 移动端的 click 事件不会正常触发,需要手动触发 * @param e */ private touchStartTime; private polyfillEvent; private addDragHandler; private onUp; }