layer~OverlayLayer(name, options)

叠加物图层。随着叠加物数量增多,渲染性能会有明显下降。叠加物总数建议不超过200,渲染库对所有添加到OverlayLayer上OverLay的总数限定为400。

Summary

Methods:
addOverlay

添加单个叠加物。

addOverlays

添加多个叠加物。

getAllOverlays

获取图层上所有的叠加物对象。

getId

获取叠加图层的id。

getLayerType

获取图层类型

getLayerZIndex

获取当前图层的顺序。

getMap

获取拥有该图层的地图对象。

getMaxVisibleZoom

获取图层的最大显示层级。

getMinVisibleZoom

获取图层的最小显示层级。

getName

获取图层名称。

getOverlayByAttribute

根据自定义属性获取叠加物。

getOverlaysByDomId

根据属性值里的domId值获取叠加物。

getVisibility

获取图层的可见性。

redraw

重新绘制

removeAllOverlays

移除图层上所有的叠加物对象。

removeOverlay

移除图层上单个叠加物对象。

removeOverlaysByAttribute

根据自定义属性删除叠加物对象。

removeOverlaysByFilter

根据回调函数删除叠加物对象。

setLayerZIndex

设置当前图层的顺序。

setMaxVisibleZoom

设置图层的最大显示层级。

setMinVisibleZoom

设置图层的最小显示层级。

setVisibility

设置图层的可见性。
仅设置该图层是否可见,而图层本身依然存在。

Constructor

new OverlayLayer(name, options)

Parameters:
Name Type Description
name String

图层名称

options Object

可选项。给出的属性都将被绑定到该图层对象上。

Name Type Description
map module:Map

可选项。地图对象,该参数设置将叠加物图层绑定到指定的map上,若不传则默认为空。

visibility Boolean

可选项。图层显示或隐藏。显示设置true;隐藏设置false。

minVisibleZoom Number

设置图层的最小显示层级,其值为整数,当缩放级别小于该层级时,不显示图层。

maxVisibleZoom Number

设置图层的最大显示层级,其值为整数,当缩放级别大于该层级时,不显示图层。

Example
let overlayLayer = new hmap.layer.OverlayLayer("叠加物图层");

Methods

addOverlay(overlay) → {module:layer~OverlayLayer}

添加单个叠加物。

Parameters:
Name Type Description
overlay module:overlay~Overlay

要添加的叠加物

Throws:
TypeError -

当overlay不是module:overlay~Overlay时,抛出异常"The parameter must be an instance of Overlay"

Returns:
module:layer~OverlayLayer -

添加叠加物之后的图层

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content
});
overlayLayer.addOverlay(overlay);

addOverlays(overlays) → {module:layer~OverlayLayer}

添加多个叠加物。

Parameters:
Name Type Description
overlays Array.<module:overlay~Overlay>

要添加的叠加物数组

Returns:
module:layer~OverlayLayer -

添加叠加物之后的图层

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content
});
let overlayLayer = overlayLayer.addOverlays([overlay]);

getAllOverlays() → {Array.<module:overlay~Overlay>}

获取图层上所有的叠加物对象。

Returns:
Array.<module:overlay~Overlay> -

所有叠加物对象的数组

Example
let overlayArr = overlayLayer.getAllOverlays();

getId() → {String}

获取叠加图层的id。

Returns:
String -

图层id

getLayerType() → {String}

获取图层类型

Returns:
String -

图层类型

getLayerZIndex()

获取当前图层的顺序。

Returns:
-

当前图层的zindex

getMap() → {module:Map}

获取拥有该图层的地图对象。

Returns:
module:Map -

地图对象

Example
let map = overlayLayer.getMap();

getMaxVisibleZoom() → {Number}

获取图层的最大显示层级。

Returns:
Number -

图层的最大显示层级

getMinVisibleZoom() → {Number}

获取图层的最小显示层级。

Returns:
Number -

图层的最小显示层级

getName() → {String}

获取图层名称。

Returns:
String -

图层名称

getOverlayByAttribute(key, value) → {Array.<module:overlay~Overlay>}

根据自定义属性获取叠加物。

Parameters:
Name Type Description
key String

value String

键对应的值

Returns:
Array.<module:overlay~Overlay> -

符合条件的叠加物的数组

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content,
     "name":"popup1"//自定义key-value
});
overlayLayer.addOverlays([overlay]);
let overlays = overlayLayer.getOverlayByAttribute("name","popup1");

getOverlaysByDomId(domId) → {Array.<module:overlay~Overlay>}

根据属性值里的domId值获取叠加物。

Parameters:
Name Type Description
domId String

叠加物的domid

Throws:
TypeError -

当参数不是字符串时发生

Returns:
Array.<module:overlay~Overlay> -

返回叠加物数组

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content
});
overlayLayer.addOverlays([overlay]);
let overlays = overlayLayer.getOverlaysByDomId("domId");

getVisibility() → {Boolean}

获取图层的可见性。

Returns:
Boolean -

当前图层的可见性

redraw()

重新绘制

removeAllOverlays() → {Number}

移除图层上所有的叠加物对象。

Returns:
Number -

返回移除的叠加物数量

Example
overlayLayer.removeAllOverlays();

removeOverlay(overlay) → {Number}

移除图层上单个叠加物对象。

Parameters:
Name Type Description
overlay module:overlay~Overlay

叠加物对象

Throws:
TypeError -

当overlay的类型不是module:overlay~Overlay时,抛出异常"The parameter must be an instance of Overlay"

Returns:
Number -

返回移除的叠加物数量

Example
overlayLayer.removeOverlay(overlay);

removeOverlaysByAttribute(key, value) → {Number}

根据自定义属性删除叠加物对象。

Parameters:
Name Type Description
key String

value String

键对应的值

Returns:
Number -

返回删除的叠加物数量

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content,
     "name":"popup1"//自定义key-value
});
overlayLayer.addOverlays([overlay]);
overlayLayer.removeOverlaysByAttribute("name","popup1");

removeOverlaysByFilter(filterFunction) → {Number}

根据回调函数删除叠加物对象。

Parameters:
Name Type Description
filterFunction function

回调函数,以叠加物为参数,返回true删除,返回false不删除。

Returns:
Number -

被删除的叠加物的数量

Example
let content = document.createElement("div");
content.textContent = "弹框内容";
let location = new hmap.basetype.Coordinate(120, 30, 0);
let overlay = new hmap.overlay.SimplePopup({
     "location":location,
     "domId":"domId",
     "element":content,
     "name":"popup1"//自定义key-value
});
overlayLayer.addOverlays([overlay]);
overlayLayer.removeOverlaysByFilter (function(overlay){
      if(overlay.get("name") == "popup1"){
          return true;//返回true,表示删除;
      }
});

setLayerZIndex(zIndex)

设置当前图层的顺序。

Parameters:
Name Type Description
zIndex Number

新的索引值。

setMaxVisibleZoom(maxVisibleZoom)

设置图层的最大显示层级。

Parameters:
Name Type Default Description
maxVisibleZoom Number 24

当缩放级别大于该层级时,不显示图层。

Throws:
Error -

当参数不在[0, 24]区间范围时,抛出异常。

setMinVisibleZoom(minVisibleZoom)

设置图层的最小显示层级。

Parameters:
Name Type Default Description
minVisibleZoom Number 0

当缩放级别小于该层级时,不显示图层。

Throws:
Error -

当参数不在[0, 24]区间范围时,抛出异常。

setVisibility(visible) → {module:layer~OverlayLayer}

设置图层的可见性。
仅设置该图层是否可见,而图层本身依然存在。

Parameters:
Name Type Default Description
visible Boolean true

是否可见,可见设置true,不可见设置false。

Throws:
TypeError -

当传入的参数不是Boolean时,抛出异常"visible must be boolean type!"

Returns:
module:layer~OverlayLayer -

返回设置后的叠加物图层

Example
overlayLayer.setVisibility(false);