天地图API

콘텐츠

此类是地图API的核心类,用来实例化一个地图。

构造函数

构造函数

说明

Map(container:String|HTMLElement[,opts:MapOptions])

在指定的容器内创建地图实例,之后需要调用Map.centerAndZoom()方法对地图进行初始化。未进行初始化的地图将不能进行任何操作。参数说明:container:用于显示地图的DIV对象。

opts:地图属性对象,请参考MapOptions。

配置方法

方法

返回值

说明

enableDrag()

none

启用地图拖拽,默认启用。

disableDrag()

none

禁用地图拖拽。

isDrag()

boolean

是否启用地图拖拽,true表示启用,false表示禁止。

enableScrollWheelZoom()

none

启用滚轮放大缩小,默认启用。

disableScrollWheelZoom()

none

禁用滚轮放大缩小。

isScrollWheelZoom()

boolean

是否启用滚轮放大缩小,true表示启用,false表示禁止。

enableDoubleClickZoom()

none

启用双击放大,默认启用。

disableDoubleClickZoom()

none

禁用双击放大。

isDoubleClickZoom()

boolean

是否启用双击放大,true表示启用,false表示禁止。

enableKeyboard()

none

启用键盘操作,默认启用。

disableKeyboard()

none

禁用键盘操作。

isKeyboard()

boolean

是否启用键盘操作,true表示启用,false表示禁止。

enableInertia()

none

启用地图惯性拖拽,默认启用。

disableInertia()

none

禁用地图惯性拖拽。

isInertia()

boolean

是否启用地图惯性拖拽,true表示启用,false表示禁止。

enableContinuousZoom()

none

启用连续缩放效果,默认启用。

disableContinuousZoom()

none

禁用连续缩放效果。

isContinuousZoom()

boolean

是否启用连续缩放效果,true表示启用,false表示禁止。

enablePinchToZoom()

none

启用双指操作缩放,默认启用。

disablePinchToZoom()

none

禁用双指操作缩放。

isPinchToZoom()

boolean

是否启用操作缩放,true表示启用,false表示禁止。

enableAutoResize()

none

启用自动适应容器尺寸变化,默认启用。

disableAutoResize()

none

禁用自动适应容器尺寸变化。

地图状态方法

方法

返回值

说明

getCode()

String

返回地图投影类型信息。

getBounds()

LngLatBounds

返回地图可视区域,以地理坐标表示。

getCenter()

LngLat

返回地图当前中心点。

getSize()

Point

返回地图视图的大小,以像素表示。

getZoom()

number

返回地图当前缩放级别。

getDistance(start:LngLat,end:LngLat)

number

返回两点之间的距离,单位是米。参数说明:start:起点地理坐标。

end:终点地理坐标。

getViewport(view:Array<LngLat>)

json

根据提供的地理区域或坐标获得最佳的地图视野,返回的对象中包含center和zoom属性,分别表示地图的中心点和级别。

修改地图状态方法

方法

返回值

说明

centerAndZoom(lnglat:LngLat,zoom:Number)

none

初始化定位地图。 参数说明: lnglat:地图的中心点地理坐标。

zoom:地图的比例尺级别。

panTo(lnglat:LngLat[,zoom:Number])

none

将地图的中心点变换到指定的地理坐标,如果同时指定了缩放等级,则同时缩放到指定的等级。参数说明:lnglat:地图的中心点地理坐标。

zoom:地图的比例尺级别。

panBy(position:Point)

none

将地图在水平位置上移动x像素,垂直位置上移动y像素。参数说明:

position:像素坐标。

setZoom(zoom:Number)

none

将视图缩放到指定的缩放等级,中心点坐标不变。参数说明:

zoom:地图显示级别。

zoomIn()

none

放大一级视图。

zoomOut()

none

缩小一级视图。

checkResize()

none

通知地图其容器大小已更改。在更改了容器对象的大小后调用此方法,以便地图能够调整自己适合于新的大小。

setMinZoom(level:Number)

none

设置地图最小显示级别。参数说明:

level:地图显示最小级别。

setMaxZoom(level:Number)

none

设置地图最大显示级别。参数说明:

level:地图显示最大级别。

setMaxBounds(bounds:LngLatBounds)

none

设置地图的显示范围。参数说明:

bounds:地图坐标范围LngLatBounds。

setViewport(view:Array<LngLat>)

none

根据提供的坐标点数组设置地图视野,调整后的视野会保证包含提供的坐标点。

setStyle(style:String)

none

设置地图样式。参数说明:

style:地图的样式,分别为black,indigo。

坐标变换

方法

返回值

说明

containerPointToLngLat(pixel:Point)

LngLat

将地图上相对于container的像素坐标转化为地理坐标,参数是Point,返回值类型是LngLat。 pixel参数是像素对象。

lngLatToContainerPoint(lnglat:LngLat)

Point

将地理坐标转化为地图上点的像素坐标,相对于container左上角,参数是LngLat,返回值是Point。

lngLatToLayerPoint(lnglat:LngLat)

Point

将地理坐标转化为地图图层上点的像素坐标,相对于地图图层左上角,参数是LngLat,返回值是Point。

layerPointToLngLat(pixel:Point)

LngLat

返回给定地图上点的地理坐标系。
将地图上相对于地图图层的像素坐标转化为地理坐标,参数是Point,返回值类型是LngLat。pixel参数是像素对象。

覆盖物方法

方法

返回值

说明

addOverLay(overlay:OverLay)

none

将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次。参数说明:

overlay:覆盖物对象。

removeOverLay(overlay:OverLay)

none

从地图中移除覆盖物。如果覆盖物从未被添加到地图中,则该移除不起任何作用。参数说明:

overlay:覆盖物对象。

clearOverLays()

none

清除地图上所有覆盖物。

getOverlays()

Array<Overlay>

返回地图上的所有覆盖物。

getPanes()

MapPanes

返回地图覆盖物容器列表。

openInfoWindow(infowin:InfoWindow, lnglat:Lnglat)

none

在地图上打开信息窗口。参数说明:infowin:信息窗口对象InfoWindow。

lnglat:在地图上打开的地理位置坐标。

closeInfoWindow()

none

关闭在地图上打开的信息窗口。在标注上打开的信息窗口也可通过此方法进行关闭。

控件方法

方法

返回值

说明

addControl(control:Control)

none

将控件添加到地图,一个控件实例只能向地图中添加一次。参数说明:

control:控件对象。

removeControl(control:Control)

none

从地图中移除控件。如果控件从未被添加到地图中,则该移除不起任何作用。参数说明:

control:控件对象。

getContainer()

HTMLElement

返回地图的容器元素。当创建用户自定义控件时,需要自行实现Control.initialize()方法,并将控件的容器元素添加到地图上,通过此方法可获得地图容器。

地图图层方法

方法

返回值

说明

getLayers()

array<TileLayer>

获取所有叠加层对象,可以自己判断需要移除哪些叠加层。

addLayer(layer:TileLayer)

none

给地图添加一个叠加层对象。参数说明:

layer:TileLayer对象。

removeLayer(layer:TileLayer)

none

移除一个叠加层对象。参数说明:

layer:TileLayer对象。

clearLayers()

none

移除所有叠加层对象。

事件

事件

参数

描述

click

{type, target, lnglat, containerPoint }

左键单击地图时触发此事件。

dblclick

{type, target, lnglat, containerPoint }

鼠标双击地图时会触发此事件。

contextmenu

{type, target, lnglat, containerPoint }

右键单击地图时触发此事件。

mousemove

{type, target, lnglat, containerPoint }

鼠标在地图区域移动过程中触发此事件。

mouseover

{type, target, lnglat, containerPoint }

鼠标移入地图区域时触发此事件。

mouseout

{type, target, lnglat, containerPoint }

鼠标移出地图区域时触发此事件。

movestart

{type, target}

地图移动开始时触发此事件。

move

{type, target}

地图移动过程中触发此事件。

moveend

{type, target}

地图移动结束时触发此事件。

zoomstart

{type, target}

地图更改缩放级别开始时触发触发此事件。

zoomend

{type, target}

地图更改缩放级别结束时触发触发此事件。

addoverlay

{type, target, addoverlay }

当使用Map.addOverlay()方法向地图中添加单个覆盖物时会触发此事件。

removeoverlay

{type, target, removeoverlay }

当使用Map.removeOverlay()方法移除单个覆盖物时会触发此事件。

addcontrol

{type, target, addcontrol }

当使用Map.addControl()方法向地图中添加单个控件时会触发此事件。

removecontrol

{type, target, removecontrol }

当使用Map.removeControl()方法移除单个控件时会触发此事件。

clearoverlays

{type, target}

当使用Map.clearOverlays()方法一次性移除全部覆盖物时会触发此事件。

dragstart

{type, target }

开始拖拽地图时触发。

drag

{type, target }

拖拽地图过程中触发。

dragend

{type, target }

停止拖拽地图时触发。

layeradd

{type, target, layer }

添加一个自定义地图图层时触发此事件。

layerremove

{type, target, layer }

移除一个自定义地图图层时触发此事件。

load

{type, target}

调用Map.centerAndZoom()方法时会触发此事件。这表示位置、缩放层级已经确定,但可能还在载入地图瓦片。

resize

{type, target, newSize, oldSize }

地图可视区域大小发生变化时会触发此事件。

levels

{type, target, minzoom, maxzoom }

调用setMinZoom和setMaxZoom时会触发此事件。

touchstart

{type, target, lnglat, containerPoint }

触摸开始时触发此事件,仅适用移动设备。

touchmove

{type, target, lnglat, containerPoint }

触摸移动时触发此事件,仅适用移动设备。

touchend

{type, target, lnglat, containerPoint }

触摸结束时触发此事件,仅适用移动设备。

longpress

{type, target, lnglat, containerPoint }

长按事件,仅适用移动设备。

요약하다
本文介绍了地图API的核心类Map,主要用于实例化地图并进行各种操作。构造函数Map(container, opts)用于在指定容器内创建地图实例,初始化后可通过Map.centerAndZoom()方法进行地图设置。文中详细列出了多种配置方法,如启用或禁用拖拽、滚轮缩放、双击放大等功能,并提供了相应的状态查询方法。地图状态方法包括获取地图的投影类型、可视区域、中心点、视图大小和缩放级别等。修改地图状态的方法允许用户设置中心点、缩放级别、最小和最大缩放级别等。此外,文中还介绍了坐标变换、覆盖物管理、控件管理和地图图层管理的方法,最后提到了一些事件的处理。整体上,本文为开发者提供了全面的地图操作指南。