export interface ISelf { self: any; discriminator: string; } export interface IMap extends ISelf { on(eventName: string, callback: Function); add(obj: IMarker | ITileLayer | any); remove(obj: IMarker | ITileLayer | any); clearMap(); containerToLngLat(e: IPixel): ILngLat; //地图容器像素坐标转经纬度 setCity(city: string); getCity(callback: Function): any; setZoom(zoom: number); setZoomAndCenter(zoom: number, pos: number[]); getZoom(): number; setCenter(pos: number[] | ILngLat); getCenter(): ILngLat; getBounds(): any; distance(a: number[], b: number[]): any; setAdministrativeAreaStyle(conponent: any, getData?: Function, setData?: Function): any; //自定义 行政区划 样式 } export interface IMapOptions { zoom?: number; zooms?: number[]; } export interface IMarker extends ISelf { id: string; _position: number[]; on(eventName: string, callback: Function); setPosition(x: ILngLat | number[]) setContent(html: string) setMap(); } export interface IMarkerCluster extends ISelf { on(eventName: string, callback: Function): void; setData(list: any[]); } type HtmlRender = (...args) => string | HTMLElement; type PixelRender = (...args) => IPixel; export interface IRenderClusterMarker { getFirstImages(context: any): string; contentRender: HtmlRender; contentNonRender: HtmlRender; pixelRender: PixelRender; pixelNonRender: PixelRender; } export class IMarkOptions { position?: ILngLat | number[]; content?: string; offset?: IPixel; map?: IMap; draggable?: boolean } export interface IPixel extends ISelf { x: number y: number getArray(): number[] } export interface ILngLat extends ISelf { typeName: string lng: number lat: number KL: number kT: number offset(x: number, y: number): ILngLat getArray(): number[] } export interface ILayer extends ISelf { } export interface IIconOptions { size?: ISize; imageSize?: ISize; image?: string; } export interface IIcon extends ISelf { } export interface ISize extends ISelf { } export interface ITileLayer extends ISelf { Satellite(); RoadNet(); } export interface IDrivingOptions { map?: IMap; policy?: string showTraffic?: boolean isOutline?: boolean } export interface IDriving extends ISelf { clear(); search(posStart?: ILngLat, posEnd?: ILngLat, callback?: Function); } export class AutoCompleteSearchResultDto { name: string;//名称 district: string;//所属区域 adcode: string;//区域编码 location: ILngLat; } type AutoCompleteSearchCallback = (status: string, searchData: { info: string, count: number, tips: AutoCompleteSearchResultDto[] }) => void; export interface IAutocomplete extends ISelf { on(eventName: string, callback: Function) search(address: string, callback: AutoCompleteSearchCallback) } type SearchRender = (...args) => any[]; export interface IPlaceSearch extends ISelf { search(text: string, callback: Function); } export interface IMouseTool extends ISelf { rule(options: any) measureArea(options: any) close(isTrue: boolean) } export interface IInfoWindow extends ISelf { open(map: IMap); listen(html: any, event: string, callback: Function) } export interface ICircle extends ISelf { setRadius(num: number); setCenter(pos: number[]) setMap(map: IMap) }