mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-09-08 18:20:34 +00:00
569 lines
17 KiB
TypeScript
569 lines
17 KiB
TypeScript
declare namespace AMap {
|
|
namespace Map {
|
|
type Feature = 'bg' | 'point' | 'road' | 'building';
|
|
type ViewMode = '2D' | '3D';
|
|
interface Options {
|
|
/**
|
|
* 地图视口,用于控制影响地图静态显示的属性
|
|
*/
|
|
view?: View2D;
|
|
/**
|
|
* 地图图层数组,数组可以是图层 中的一个或多个,默认为普通二维地图
|
|
*/
|
|
layers?: Layer[];
|
|
/**
|
|
* 地图显示的缩放级别
|
|
*/
|
|
zoom?: number;
|
|
/**
|
|
* 地图中心点坐标值
|
|
*/
|
|
center?: LocationValue;
|
|
/**
|
|
* 地图标注显示顺序
|
|
*/
|
|
labelzIndex?: number;
|
|
/**
|
|
* 地图显示的缩放级别范围
|
|
*/
|
|
zooms?: [number, number];
|
|
/**
|
|
* 地图语言类型
|
|
*/
|
|
lang?: Lang;
|
|
/**
|
|
* 地图默认鼠标样式
|
|
*/
|
|
defaultCursor?: string;
|
|
/**
|
|
* 地图显示的参考坐标系
|
|
*/
|
|
crs?: 'EPSG3857' | 'EPSG3395' | 'EPSG4326';
|
|
/**
|
|
* 地图平移过程中是否使用动画
|
|
*/
|
|
animateEnable?: boolean;
|
|
/**
|
|
* 是否开启地图热点和标注的hover效果
|
|
*/
|
|
isHotspot?: boolean;
|
|
/**
|
|
* 当前地图中默认显示的图层
|
|
*/
|
|
defaultLayer?: TileLayer;
|
|
/**
|
|
* 地图是否可旋转
|
|
*/
|
|
rotateEnable?: boolean;
|
|
/**
|
|
* 是否监控地图容器尺寸变化
|
|
*/
|
|
resizeEnable?: boolean;
|
|
/**
|
|
* 是否在有矢量底图的时候自动展示室内地图
|
|
*/
|
|
showIndoorMap?: boolean;
|
|
/**
|
|
* 在展示矢量图的时候自动展示室内地图图层
|
|
*/
|
|
// indoorMap?: IndorMap
|
|
/**
|
|
* 是否支持可以扩展最大缩放级别
|
|
*/
|
|
expandZoomRange?: boolean;
|
|
/**
|
|
* 地图是否可通过鼠标拖拽平移
|
|
*/
|
|
dragEnable?: boolean;
|
|
/**
|
|
* 地图是否可缩放
|
|
*/
|
|
zoomEnable?: boolean;
|
|
/**
|
|
* 地图是否可通过双击鼠标放大地图
|
|
*/
|
|
doubleClickZoom?: boolean;
|
|
/**
|
|
* 地图是否可通过键盘控制
|
|
*/
|
|
keyboardEnable?: boolean;
|
|
/**
|
|
* 地图是否使用缓动效果
|
|
*/
|
|
jogEnable?: boolean;
|
|
/**
|
|
* 地图是否可通过鼠标滚轮缩放浏览
|
|
*/
|
|
scrollWheel?: boolean;
|
|
/**
|
|
* 地图在移动终端上是否可通过多点触控缩放浏览地图
|
|
*/
|
|
touchZoom?: boolean;
|
|
/**
|
|
* 当touchZoomCenter=1的时候,手机端双指缩放的以地图中心为中心,否则默认以双指中间点为中心
|
|
*/
|
|
touchZoomCenter?: number;
|
|
/**
|
|
* 设置地图的显示样式
|
|
*/
|
|
mapStyle?: string;
|
|
/**
|
|
* 设置地图上显示的元素种类
|
|
*/
|
|
features?: Feature[] | 'all' | Feature;
|
|
/**
|
|
* 设置地图显示3D楼块效果
|
|
*/
|
|
showBuildingBlock?: boolean;
|
|
/**
|
|
* 视图模式
|
|
*/
|
|
viewMode?: ViewMode;
|
|
/**
|
|
* 俯仰角度
|
|
*/
|
|
pitch?: number;
|
|
/**
|
|
* 是否允许设置俯仰角度
|
|
*/
|
|
pitchEnable?: boolean;
|
|
/**
|
|
* 楼块出现和消失的时候是否显示动画过程
|
|
*/
|
|
buildingAnimation?: boolean;
|
|
/**
|
|
* 调整天空颜色
|
|
*/
|
|
skyColor?: string;
|
|
/**
|
|
* 设置地图的预加载模式
|
|
*/
|
|
preloadMode?: boolean;
|
|
/**
|
|
* 为 Map 实例指定掩模的路径,各图层将只显示路径范围内图像
|
|
*/
|
|
mask?: Array<[number, number]> | Array<Array<[number, number]>> | Array<Array<Array<[number, number]>>>;
|
|
maxPitch?: number;
|
|
rotation?: number;
|
|
forceVector?: boolean;
|
|
|
|
// internal
|
|
baseRender?: 'vw' | 'd' | 'dv' | 'v';
|
|
overlayRender?: 'c' | 'd';
|
|
showLabel?: boolean;
|
|
gridMapForeign?: boolean;
|
|
logoUrl?: string;
|
|
logoUrlRetina?: string;
|
|
copyright?: string;
|
|
turboMode?: boolean;
|
|
workerMode?: boolean;
|
|
// continuousZoomEnable?: boolean;
|
|
// showFog: boolean;
|
|
// yaw: number;
|
|
// scale: number;
|
|
// detectRetina: number;
|
|
}
|
|
interface Status {
|
|
/**
|
|
* 是否开启动画
|
|
*/
|
|
animateEnable: boolean;
|
|
/**
|
|
* 是否双击缩放
|
|
*/
|
|
doubleClickZoom: boolean;
|
|
/**
|
|
* 是否支持拖拽
|
|
*/
|
|
dragEnable: boolean;
|
|
isHotspot: boolean;
|
|
/**
|
|
* 是否开启缓动效果
|
|
*/
|
|
jogEnable: boolean;
|
|
/**
|
|
* 是否支持键盘
|
|
*/
|
|
keyboardEnable: boolean;
|
|
/**
|
|
* 是否支持调整俯仰角
|
|
*/
|
|
pitchEnable: boolean;
|
|
resizeEnable: boolean;
|
|
/**
|
|
* 是否支持旋转
|
|
*/
|
|
rotateEnable: boolean;
|
|
/**
|
|
* 是否支持滚轮缩放
|
|
*/
|
|
scrollWheel: boolean;
|
|
/**
|
|
* 是否支持触摸缩放
|
|
*/
|
|
touchZoom: boolean;
|
|
/**
|
|
* 是否支持缩放
|
|
*/
|
|
zoomEnable: boolean;
|
|
}
|
|
type HotspotEvent<N extends string> = Event<N, {
|
|
/**
|
|
* 经纬度坐标
|
|
*/
|
|
lnglat: LngLat;
|
|
/**
|
|
* 热点名称
|
|
*/
|
|
name: string;
|
|
/**
|
|
* 热点id
|
|
*/
|
|
id: string;
|
|
|
|
// internal
|
|
/**
|
|
* 是否室内热点
|
|
*/
|
|
isIndoorPOI: boolean;
|
|
}>;
|
|
interface EventMap {
|
|
click: MapsEvent<'click', Map>;
|
|
dblclick: MapsEvent<'dblclick', Map>;
|
|
rightclick: MapsEvent<'rightclick', Map>;
|
|
rdblclick: MapsEvent<'rdblclick', Map>;
|
|
mouseup: MapsEvent<'mouseup', Map>;
|
|
mousedown: MapsEvent<'mousedown', Map>;
|
|
mousemove: MapsEvent<'mousemove', Map>;
|
|
mousewheel: MapsEvent<'mousewheel', Map>;
|
|
mouseover: MapsEvent<'mouseover', Map>;
|
|
mouseout: MapsEvent<'mouseout', Map>;
|
|
touchstart: MapsEvent<'touchstart', Map>;
|
|
touchmove: MapsEvent<'touchmove', Map>;
|
|
touchend: MapsEvent<'touchend', Map>;
|
|
contextmenu: MapsEvent<'contextmenu', Map>;
|
|
|
|
hotspotclick: HotspotEvent<'hotspotclick'>;
|
|
hotspotover: HotspotEvent<'hotspotover'>;
|
|
hotspotout: HotspotEvent<'hotspotout'>;
|
|
|
|
complete: Event<'complete'>;
|
|
mapmove: Event<'mapmove'>;
|
|
movestart: Event<'movestart'>;
|
|
moveend: Event<'moveend'>;
|
|
zoomchange: Event<'zoomchange'>;
|
|
zoomstart: Event<'zoomstart'>;
|
|
zoomend: Event<'zoomend'>;
|
|
dragstart: Event<'dragstart'>;
|
|
dragging: Event<'dragging'>;
|
|
dragend: Event<'dragend'>;
|
|
resize: Event<'resize'>;
|
|
}
|
|
}
|
|
|
|
class Map extends EventEmitter {
|
|
/**
|
|
* 构造一个地图对象
|
|
* @param container 地图容器的id或者是DOM元素
|
|
* @param opts 选项
|
|
*/
|
|
constructor(container: string | HTMLElement, opts?: Map.Options);
|
|
/**
|
|
* 唤起高德地图客户端marker页
|
|
* @param obj 唤起参数
|
|
*/
|
|
poiOnAMAP(obj: { id: string; location?: LocationValue; name?: string }): void;
|
|
/**
|
|
* 唤起高德地图客户端marker详情页
|
|
* @param obj 唤起参数
|
|
*/
|
|
detailOnAMAP(obj: { id: string; location?: LocationValue; name?: string }): void;
|
|
/**
|
|
* 获取当前地图缩放级别
|
|
*/
|
|
getZoom(): number;
|
|
/**
|
|
* 获取地图图层数组
|
|
*/
|
|
getLayers(): Layer[];
|
|
/**
|
|
* 获取地图中心点经纬度坐标值
|
|
*/
|
|
getCenter(): LngLat;
|
|
/**
|
|
* 返回地图对象的容器
|
|
*/
|
|
getContainer(): HTMLElement | null;
|
|
/**
|
|
* 获取地图中心点所在区域
|
|
*/
|
|
getCity(callback: (cityData: {
|
|
/**
|
|
* 市名称
|
|
*/
|
|
city: string;
|
|
/**
|
|
* 市代码
|
|
*/
|
|
citycode: string;
|
|
/**
|
|
* 区名称
|
|
*/
|
|
district: string;
|
|
/**
|
|
* 省
|
|
*/
|
|
province: string | never[]; // province is empty array when getCity fail
|
|
}) => void): void;
|
|
/**
|
|
* 获取当前地图视图范围,获取当前可视区域
|
|
*/
|
|
getBounds(): Bounds;
|
|
/**
|
|
* 获取当前地图标注的显示顺序
|
|
*/
|
|
getLabelzIndex(): number;
|
|
/**
|
|
* 获取Map的限制区域
|
|
*/
|
|
getLimitBounds(): Bounds;
|
|
/**
|
|
* 获取地图语言类型
|
|
*/
|
|
getLang(): Lang;
|
|
/**
|
|
* 获取地图容器像素大小
|
|
*/
|
|
getSize(): Size;
|
|
/**
|
|
* 获取地图顺时针旋转角度
|
|
*/
|
|
getRotation(): number;
|
|
/**
|
|
* 获取当前地图状态信息
|
|
*/
|
|
getStatus(): Map.Status;
|
|
/**
|
|
* 获取地图默认鼠标指针样式
|
|
*/
|
|
getDefaultCursor(): string;
|
|
/**
|
|
* 获取指定位置的地图分辨率
|
|
* @param point 指定经纬度
|
|
*/
|
|
getResolution(point?: LocationValue): number;
|
|
/**
|
|
* 获取当前地图比例尺
|
|
* @param dpi dpi
|
|
*/
|
|
getScale(dpi?: number): number;
|
|
/**
|
|
* 设置地图显示的缩放级别
|
|
* @param level 缩放级别
|
|
*/
|
|
setZoom(level: number): void;
|
|
/**
|
|
* 设置地图标注显示的顺序
|
|
* @param index 显示顺序
|
|
*/
|
|
setLabelzIndex(index: number): void;
|
|
/**
|
|
* 设置地图图层数组
|
|
* @param layers 图层数组
|
|
*/
|
|
setLayers(layers: Layer[]): void;
|
|
/**
|
|
* 添加覆盖物/图层
|
|
* @param overlay 覆盖物/图层
|
|
*/
|
|
add(overlay: Overlay | Overlay[]): void;
|
|
/**
|
|
* 删除覆盖物/图层
|
|
* @param overlay 覆盖物/图层
|
|
*/
|
|
remove(overlay: Overlay | Overlay[]): void;
|
|
/**
|
|
* 返回添加的覆盖物对象
|
|
* @param type 覆盖物类型
|
|
*/
|
|
getAllOverlays(type?: 'marker' | 'circle' | 'polyline' | 'polygon'): Overlay[];
|
|
/**
|
|
* 设置地图显示的中心点
|
|
* @param center 中心点经纬度
|
|
*/
|
|
setCenter(center: LocationValue): void;
|
|
/**
|
|
* 地图缩放至指定级别并以指定点为地图显示中心点
|
|
* @param zoomLevel 缩放等级
|
|
* @param center 缩放中心
|
|
*/
|
|
setZoomAndCenter(zoomLevel: number, center: LocationValue): void;
|
|
/**
|
|
* 按照行政区名称或adcode来设置地图显示的中心点。
|
|
* @param city 城市名称或城市编码
|
|
* @param callback 回调
|
|
*/
|
|
setCity(city: string, callback: (this: this, coord: [string, string], zoom: number) => void): void;
|
|
/**
|
|
* 指定当前地图显示范围
|
|
* @param bound 显示范围
|
|
*/
|
|
setBounds(bound: Bounds): Bounds;
|
|
/**
|
|
* 设置Map的限制区域
|
|
* @param bound 限制区域
|
|
*/
|
|
setLimitBounds(bound: Bounds): void;
|
|
/**
|
|
* 清除限制区域
|
|
*/
|
|
clearLimitBounds(): void;
|
|
/**
|
|
* 设置地图语言类型
|
|
* @param lang 语言类型
|
|
*/
|
|
setLang(lang: Lang): void;
|
|
/**
|
|
* 设置地图顺时针旋转角度,旋转原点为地图容器中心点
|
|
* @param rotation 旋转角度
|
|
*/
|
|
setRotation(rotation: number): void;
|
|
/**
|
|
* 设置当前地图显示状态
|
|
* @param status 状态
|
|
*/
|
|
setStatus(status: Partial<Map.Status>): void;
|
|
/**
|
|
* 设置鼠标指针默认样式
|
|
* @param cursor 指针样式
|
|
*/
|
|
setDefaultCursor(cursor: string): void;
|
|
/**
|
|
* 地图放大一级显示
|
|
*/
|
|
zoomIn(): void;
|
|
/**
|
|
* 地图缩小一级显示
|
|
*/
|
|
zoomOut(): void;
|
|
/**
|
|
* 地图中心点平移至指定点位置
|
|
* @param position 目标位置经纬度
|
|
*/
|
|
panTo(position: LocationValue): void;
|
|
/**
|
|
* 以像素为单位,沿x方向和y方向移动地图
|
|
* @param x 横向移动像素,向右为正
|
|
* @param y 纵向移动像素,向下为正
|
|
*/
|
|
panBy(x: number, y: number): void;
|
|
/**
|
|
* 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别
|
|
* @param overlayList 覆盖物数组
|
|
* @param immediately 是否需要动画过程
|
|
* @param avoid 上下左右的像素避让宽度
|
|
* @param maxZoom 最大缩放级别
|
|
*/
|
|
setFitView(
|
|
overlayList?: Overlay | Overlay[],
|
|
immediately?: boolean,
|
|
avoid?: [number, number, number, number],
|
|
maxZoom?: number
|
|
): Bounds | false | undefined;
|
|
/**
|
|
* 删除地图上所有的覆盖物
|
|
*/
|
|
clearMap(): void;
|
|
/**
|
|
* 注销地图对象,并清空地图容器
|
|
*/
|
|
destroy(): void;
|
|
/**
|
|
* 加载插件,
|
|
* tips: 插件的类型定义不在本类型定义中给出,需要另行安装例如
|
|
* 3d地图:@types/amap-js-api-map3d
|
|
* 地区搜索:@types/amap-js-api-place-search
|
|
* @param name 插件名称
|
|
* @param callback 插件加载完成后的回调函数
|
|
*/
|
|
plugin(name: string | string[], callback: () => void): this;
|
|
/**
|
|
* 添加控件
|
|
* @param control 控件
|
|
*/
|
|
addControl(control: {}): void; // TODO
|
|
/**
|
|
* 移除控件
|
|
* @param control 控件
|
|
*/
|
|
removeControl(control: {}): void; // TODO
|
|
/**
|
|
* 清除地图上的信息窗体。
|
|
*/
|
|
clearInfoWindow(): void;
|
|
/**
|
|
* 平面地图像素坐标转换为地图经纬度坐标
|
|
* @param pixel 像素坐标
|
|
* @param level 缩放等级
|
|
*/
|
|
pixelToLngLat(pixel: Pixel, level?: number): LngLat;
|
|
/**
|
|
* 地图经纬度坐标转换为平面地图像素坐标
|
|
* @param lnglat 经纬度坐标
|
|
* @param level 缩放等级
|
|
*/
|
|
lnglatToPixel(lnglat: LocationValue, level?: number): Pixel;
|
|
/**
|
|
* 地图容器像素坐标转为地图经纬度坐标
|
|
* @param pixel 地图像素坐标
|
|
*/
|
|
containerToLngLat(pixel: Pixel): LngLat;
|
|
/**
|
|
* 地图经纬度坐标转为地图容器像素坐标
|
|
* @param lnglat 经纬度坐标
|
|
*/
|
|
lngLatToContainer(lnglat: LocationValue): Pixel;
|
|
/**
|
|
* 地图经纬度坐标转为地图容器像素坐标
|
|
* @param lnglat 经纬度坐标
|
|
*/
|
|
lnglatTocontainer(lnglat: LocationValue): Pixel;
|
|
/**
|
|
* 设置地图的显示样式
|
|
* @param style 地图样式
|
|
*/
|
|
setMapStyle(style: string): void;
|
|
/**
|
|
* 获取地图显示样式
|
|
*/
|
|
getMapStyle(): string;
|
|
/**
|
|
* 设置地图上显示的元素种类
|
|
* @param feature 元素
|
|
*/
|
|
setFeatures(feature: Map.Feature | Map.Feature[] | 'all'): void;
|
|
/**
|
|
* 获取地图显示元素种类
|
|
*/
|
|
getFeatures(): Map.Feature | Map.Feature[] | 'all';
|
|
/**
|
|
* 修改底图图层
|
|
* @param layer 图层
|
|
*/
|
|
setDefaultLayer(layer: TileLayer): void;
|
|
/**
|
|
* 设置俯仰角
|
|
* @param pitch 俯仰角
|
|
*/
|
|
setPitch(pitch: number): void;
|
|
/**
|
|
* 获取俯仰角
|
|
*/
|
|
getPitch(): number;
|
|
|
|
getViewMode_(): Map.ViewMode;
|
|
lngLatToGeodeticCoord(lnglat: LocationValue): Pixel;
|
|
geodeticCoordToLngLat(pixel: Pixel): LngLat;
|
|
}
|
|
}
|