创建地图实例

创建地图实例后可加载瓦片图,在地图上绘制内容等

示例

// 使用 id 为 map 的 div 容器初始化地图,同时指定地图的中心点和缩放级别
const map = hnsdk.createMap('map' , {
  center : [51.505,-0.09],
  zoom : 2,
})
<body>
  <div id="map"></div>
</body>

TIP

后续代码实例中使用到 map 变量均为 createMap 函数返回的地图实例

参数

入参类型描述
mapIdstringdiv容器的id
optionsobjectmap实例初始化参数

options

选项类型描述
centerarray地图初始化时的中心点位置
zoomnumber地图初始化时的缩放等级
minZoomnumber地图的最小缩放级别
maxZoomnumber地图的最大缩放级别

Events

图层事件

事件名数据说明
baselayerchangeLayersControlEvent通过图层控件更改基本图层时触发。
overlayaddLayersControlEvent通过图层控件选择叠加图层时触发。
overlayremoveLayersControlEvent通过图层控件取消选择叠加图层时触发。
layeraddLayerEvent将新图层添加到地图时触发。
layerremoveLayerEvent从地图上删除某些图层时触发

地图状态变更事件

事件名数据说明
zoomlevelschangeEvent当地图上的缩放级别数因添加或移除图层而更改时触发。
resizeResizeEvent调整地图大小时触发。
unloadEvent当使用 remove 方法销毁地图时触发。
viewresetEvent 当地图需要重绘其内容时触发(通常发生在地图缩放或加载时)。 对于创建 custom overlays 非常有用。
loadEvent地图初始化时触发(首次设置其中心和缩放比例时)。
zoomstartEvent地图缩放即将更改时(例如在缩放动画之前)触发。
movestartEvent当地图视图开始更改时触发(例如,用户开始拖动地图)。
zoomEvent在缩放级别的任何更改(包括缩放和飞行动画)期间反复触发。
moveEvent在地图的任何移动过程中反复触发,包括平移和飞行动画。
zoomendEvent在任何动画执行完毕地图更新后都会触发。
moveendEvent地图中心停止更改时触发(例如,用户停止拖动地图)。

LayersControlEvent

属性类型说明
layerLayer添加或删除的图层。
nameString添加或删除的图层的名称。

MapEventMethods

方法名返回值说明
on( type, fn, context?)this

为对象的特定事件类型添加一个监听函数(fn)。你可以选择性地指定监听器的上下文(这个关键字将指向的对象)。你也可以传递几个空格分隔的类型(例如,'click dblclick')。

on( eventMap)this

添加一组 type/listener,例如 {click: onClick, mousemove: onMouseMove}

off( type, fn?, context?)this

移除一个先前添加的监听器函数。如果没有指定函数,它将从对象中删除该特定事件的所有监听器。请注意,如果您向 on 传递了一个自定义的上下文,您必须向 off 传递相同的上下文,以便删除监听器。

off( eventMap)this

删除一组 type/listener

off()this

移除该对象上所有事件的所有监听器。这包括隐含的附加事件。

fire( type, data?, propagate?)this

触发指定类型的事件。您可以选择提供一个数据对象——侦听器函数的第一个参数将包含其属性,事件可以选择性地传播到事件父级。

listens( type, propagate?)Boolean

如果一个特定的事件类型有任何监听器连接到它,则返回 true。验证可以选择性地被传播,如果父级有监听器连接到它,它将返回true

once()this

on(...)的行为一样,不过监听器只会被触发一次后然后被删除。

addEventParent(obj)this

向父级 Evented 添加事件

removeEventParent(obj)this

删除之前向父级 Evented 添加的事件

addEventListener()this

on(…)

removeEventListener()this

off(…)

clearAllEventListeners()this

off()

addOneTimeEventListener()this

once(…)

fireEvent()this

fire(…)

hasEventListeners()Boolean

listens(…)

Methods

方法名返回值说明
addHandler( name, HandlerClass)this

给定其名称和构造函数,将新的 Handler 添加到地图。

remove()this

销毁地图并清除所有相关的事件侦听器。

createPane( name, container?)HTMLElement

如果给定名称不存在,则创建一个新的map pane,然后将其返回。 该窗格被创建为容器的子级,或者被创建为主地图窗格的子级(如果未设置)。

getPane(pane)HTMLElement

返回一个地图窗口 map pane,给它一个名称或者 HTML 的节点。

getPanes()Object

返回一个普通对象,其中包含所有窗格的名称为键,并将窗格 panes 作为值。

getContainer()HTMLElement

返回一个包含地图的 HTML 节点。

whenReady( fn, context?)this

当地图使用视图(中心和缩放)和至少一层初始化时,或者如果已经初始化,则立即运行给定的函数 fn(如果已初始化)(可选地传递函数上下文)。

获取地图状态

方法名返回值说明
getCenter()LatLng

返回地图中心点的经纬度

getZoom()Number

返回地图此时的缩放级别

getBounds()LatLngBounds

返回当前地图的矩形边界

getMinZoom()Number

返回地图的最小缩放级别(如果在地图或任何图层的 minZoom 选项中设置过),或者默认为 0。

getMaxZoom()Number

返回地图的最大缩放级别(如果在地图或任何图层的 maxZoom 选项中设置过)

getBoundsZoom(bounds, inside?, padding?)Number

返回给定边界与地图视图完全吻合的最大缩放级别。如果 inside(可选)被设置为 true,该方法反而会返回地图视图完全适合给定边界的最小缩放级别。

getSize()Point

返回地图容器的当前大小(以像素为单位)。

getPixelBounds()Bounds

返回当前地图视图的投影像素坐标的边界(有时在图层和叠加实现中很有用)。

getPixelOrigin()Point

返回地图层左上角的投影像素坐标(在自定义图层和叠加实现中很有用)。

getPixelWorldBounds(zoom?)Bounds

返回指定缩放级别的世界地图边界的像素坐标。如果 zoom 参数省略,则使用地图的当前缩放级别。

转换

方法名返回值说明
getZoomScale( toZoom, fromZoom)Number

返回要应用于从缩放级别从缩放到缩放的地图过渡的比例因子。 在内部使用以帮助缩放动画。

getScaleZoom( scale, fromZoom)Number

返回地图最终到达的缩放级别,如果它处于fromZoom 级别,并且所有内容都按比例缩放scale。 getZoomScale 的逆向方法。

project(latlng, zoom)Point

LatLng 根据地图CRS的投影来 投影地理坐标,然后zoom根据CRS的 尺寸对其进行分级 Transformation 。结果是相对于CRS原点的像素坐标。

unproject(point, zoom)LatLng

逆向 project

layerPointToLatLng(point)LatLng

给定相对于origin pixel的相应像素坐标,转换为相应的地理坐标(对于当前缩放级别)。

latLngToLayerPoint(latlng)Point

给定地理坐标,转换为相对于origin pixel的相应像素坐标。(在地图上进行位置叠加时比较有用)

wrapLatLng(latlng)LatLng

如果它们在CRS的边界之外,则返回一个LatLng,lat并lng根据地图的CRS wrapLat和wrapLng属性进行包装。默认情况下,这意味着经度包裹在数据线周围,所以它的值在-180和+180度之间。

wrapLatLngBounds(bounds)LatLngBounds

返回 LatLngBounds 与给定的大小相同的大小,确保其中心在CRS的边界内。默认情况下,这意味着中心经度被包裹在数据线周围,因此它的值在-180和+180度之间,并且大多数边界与CRS的界限重叠。

distance(latlng1, latlng2)Number

根据地图的参考系来返回两个地理位置之间的距离,默认为米。

containerPointToLayerPoint(point)Point

给定相对于地图container容器的像素坐标,返回相对于origin pixel的相应像素坐标。

layerPointToContainerPoint(point)Point

给定相对于origin pixel的像素坐标,返回相对于地图container容器的相应像素坐标。

containerPointToLatLng(point)LatLng

给定相对于地图container容器的像素坐标,返回对应的地理坐标(对于当前缩放级别)。

latLngToContainerPoint(latlng)Point

给定地理坐标,返回相对于地图container容器的相应像素坐标。

mouseEventToContainerPoint(ev)Point

给定一个MouseEvent对象,返回相对于发生事件的地图容器的像素坐标(与地图左上角相关)。

mouseEventToLayerPoint(ev)Point

给定一个MouseEvent对象,返回相对于事件发生的origin pixel的像素坐标。

mouseEventToLatLng(ev)LatLng

给定一个MouseEvent对象,返回发生事件的地理坐标。

返回

Map map实例对象

Last Updated:
Contributors: 小小志, zhiwen