Layers 图层

图层控件使用户能够在不同的基础图层之间进行切换,并打开/关闭覆盖物图层 扩展自 Control

使用示例

var baseLayers = {
    "Mapbox": mapbox,
    "OpenStreetMap": osm
};

var overlays = {
    "Marker": marker,
    "Roads": roadsLayer
};

hnsdk.control.layers(baseLayers, overlays).addTo(map);

baseLayersoverlays 参数是对象字面, layer 名作为键, Layer 对象是值:

{
    "<someName1>": layer1,
    "<someName2>": layer2
}

图层名称可以包含 HTML,这使你可以为项目添加额外的样式:

{"<img src='my-layer-icon' /> <span class='my-layer-item'>My Layer</span>": myLayer}

Creation

构造函数说明
hnsdk.control.layers(baselayers?, overlays?, options?) 创建一个具有给定图层的图层控件。基本图层将用单选按钮切换,而覆盖物图层将用复选框切换。注意,所有的基本图层都应该在基本图层对象中传递,但在地图实例化过程中,只有一个图层应该被添加到地图中。

Options 选项

选项类型默认值说明
collapsedBooleantrue 如果为 true, 该控件将被折叠成一个图标,并在鼠标悬停或触摸时展开。
autoZIndexBooleantrue 如果为 true, 控件将以递增的顺序为其所有图层分配 zIndexes,以便在开/关它们时保留顺序。
hideSingleBaseBooleanfalse 如果为 true, 当只有一个基础图层时,控件中的基础图层将被隐藏。
sortLayersBooleanfalse 是否对各图层进行排序。如果是 false, ,图层将保持它们被添加到控件中的顺序。
sortFunctionFunction* 一个 排序函数 ,当 sortLayerstrue时,它将被用于对图层进行排序。该函数同时接收 hnsdk.Layer 实例和它们的名字,如 sortFunction(layerA, layerB, nameA, nameB)。默认情况下,它按照名字的字母顺序对图层进行排序。

选项类型默认值说明
positionString'topright' 控件的位置(地图的一个角)。可能的值是 'topleft''topright''bottomleft''bottomright'

Methods 方法

方法名返回值说明
addBaseLayer(layer, name)this

在控件中添加一个具有给定名称的基础图层(单选按钮条目)。

addOverlay(layer, name)this

在控件中添加一个具有给定名称的覆盖物(复选框条目)。

removeLayer(layer)this

从控件中移除给定的图层。

expand()this

如果是折叠的,则展开控制容器。

collapse()this

如果展开,则折叠控制容器。

方法名返回值说明
getPosition()string

返回控件的位置。

setPosition(position)this

设置控件的位置。

getContainer()HTMLElement

返回包含该控件的 HTMLElement。

addTo(map)this

将控件添加到给定的地图中。

remove()this

将控件从当前活动的地图上删除。

Last Updated:
Contributors: 小小志