layer~VectorLayer(name, options)

矢量要素图层,负责矢量要素表达的图层。因无法区分深度完全相同的面,故该图层默认深度关闭。建议该图层仅存在白模时开启深度。

Summary

Methods:
addFeature

添加的单个地理要素。每调用一次,图层就会重绘一次。

addFeatures

添加多个地理要素
注意,当前版本中暂不支持由集合体(module:geom~Collection)组成的Feature。

clone

克隆一个图层。

getAllFeatures

返回该图层的所有要素。

getDepthTest

获取深度测试状态

getExtent

计算图层所有数据的地理边界,即这个边界范围内,包含该图层的所有要素,区别于图层的全球地理范围。

getFeatureByFid

获取一个地理要素。

getFeaturesByAttribute

给定属性与值,获取匹配的地理要素。
如果没有找到匹配的地理要素,则返回一个空的数组。

getFeaturesByPolygon

获取跟指定的几何体是相交或者包含关系的所有要素(不包括白模要素)

getLayerType

获取图层类型

getStretchHeightScale

获取图层中承载的白模的高度比例

getStyle

获取图层样式

removeAllFeatures

删除所有地理要素

removeFeature

删除单个地理要素,如果要删除的地理要素不在图层上,则会返回false。

removeFeatures

删除一组地理要素。
被移除的地理要素将被彻底销毁。如果仅希望解除地理要素与图层的绑定,请先clone(),然后删除。

replaceFeatures

使用新要素数组替换原图层所有要素。实现逻辑为先添加新要素,再删除原图层地理要素。

setClampMode

设置贴地模式

setDepthTest

设置深度测试状态

setOpacity

设置图层不透明度。
0表示完全透明,1表示完全不透明。从0到1,越来越不透明。

setStretchHeightScale

设置图层中承载的白模的高度比例

setStyle

设置图层样式。

updateFeature

更新已添加到图层中的指定的feature。

updateFeatures

更新已添加到图层中的指定feature数组。

Constructor

new VectorLayer(name, options)

Parameters:
Name Type Description
name String

图层名称

options Object

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

Name Type Description
style Style

可选项。设置该图层中要素的样式,若不传,则有默认样式。

spriteUrl String

可选项。雪碧图地址。雪碧图:即将多个小图标放在一张图片上。雪碧图可以使用spritezero-cli或其他工具生成。注意:使用雪碧图时,矢量图层不能显示文字。

useInterChangeLine Boolean

可选项。线相交效果为:立交还是平交。默认值为false平交线。

enableLight Boolean

是否开启图层光照,即图层是否受地图光照影响,默认为true,作用的是矢量图层中的简模。

depthTest Boolean

深度测试,布尔值,默认为false。为true时,进行深度测试,有前后遮挡关系,但深度无法区分时会导致干涉(通常表现为面破碎等现象)。

stretchHeightScale Number

图层中承载的白模的高度比例,默认为1,可以直接更改图层属性生效。

declutter Boolean

是否开启点要素的避让,默认为false。开启时,当点要素存在压盖现象时,会进行避让,避免压盖。

clampToGround Boolean

是否贴三维基础图层绘制,默认为false,如果设置,需要再指定三维基础图层。

clampMode String

贴地模式,有"texture"(纹理模式)和"height"(高度模式)两个枚举值可选,默认为"texture"。纹理模式下,图层中的线面会以纹理的形式绘制到三维基础图层表面;
如果设置了高度模式,图层中的要素会在自身高度的基础上,再追加地形高度。此设置针对的是线面类型的要素,点类型要素(包括点图标和注记文字)只能为高度模式,高度模式下,如果要素需要完全贴地形,需要将原始点位的z值设置为0。

inverseZ Boolean

是否需要基于此图层获取高度值,用于在地图对象的getHeightByCoord方法中返回,默认为false,此选项如果开启的话,需要开启图层深度测试,否则无效。

layerExtent module:basetype~Extent

图层中的数据范围,默认为null。设置后图层将只允许添加位于此范围内的数据;相应的,图层会为添加的数据构建索引,图层重绘仅绘制可视范围内的数据。

Example
let options = {
 visibility:true,//可见性
 opacity:1, //透明度
 enableHashCode:true, //启用拾取
 style:hmap.style.Style.getDefault(),//设置图层样式
 spriteUrl: './sprite/dark',
 useInterChangeLine:true//设置线为立交
};
let vectorLayer = new hmap.layer.VectorLayer("矢量图层",options);

Members

clampToGround

设置贴地状态

depthTest

获取图层的深度测试属性
return {Boolean} 深度测试属性

Overrides:

Methods

addFeature(feature)

添加的单个地理要素。每调用一次,图层就会重绘一次。

Parameters:
Name Type Description
feature module:feature~Vector

要添加的地理要素

Example
vectorLayer.addFeature(textfeature);

addFeatures(features)

添加多个地理要素
注意,当前版本中暂不支持由集合体(module:geom~Collection)组成的Feature。

Parameters:
Name Type Description
features Array.<module:feature~Vector>

矢量地理要素的数组

Example
vectorLayer.addFeatures([textfeature]);

clone() → {module:layer~VectorLayer}

克隆一个图层。

Returns:
module:layer~VectorLayer -

新的图层

Example
let newVectorLayer = vectorLayer.clone();

getAllFeatures() → {Array.<module:feature~Vector>}

返回该图层的所有要素。

Returns:
Array.<module:feature~Vector> -

添加到该图层所有的要素

Example
let result = vectorLayer.getAllFeatures();

getDepthTest()

获取深度测试状态

getExtent() → {module:basetype~Extent}

计算图层所有数据的地理边界,即这个边界范围内,包含该图层的所有要素,区别于图层的全球地理范围。

Returns:
module:basetype~Extent -

能包含所有要素的一个地理边界

Example
let extent = vectorLayer.getExtent();

getFeatureByFid(fid) → {module:feature~Vector}

获取一个地理要素。

Parameters:
Name Type Description
fid String

要素的fid编号

Returns:
module:feature~Vector -

id对应的地理要素。如果地理标识不存在,则返回undefined。

Example
let feature = vectorLayer.getFeatureByFid("textFeature0");

getFeaturesByAttribute(attrName, attrValue) → {Array.<module:feature~Vector>}

给定属性与值,获取匹配的地理要素。
如果没有找到匹配的地理要素,则返回一个空的数组。

Parameters:
Name Type Description
attrName String

属性名称或键名

attrValue *

属性值。字符串、数字等

Returns:
Array.<module:feature~Vector> -

返回所匹配的要素构成的数组

Example
let features = vectorLayer.getFeaturesByAttribute("name", 205);//得到属性name为205的要素数组

getFeaturesByPolygon(geom)

获取跟指定的几何体是相交或者包含关系的所有要素(不包括白模要素)

Parameters:
Name Type Description
geom moudle:geom~Geometry

getLayerType() → {String}

获取图层类型

Returns:
String -

图层类型

getStretchHeightScale() → {Number}

获取图层中承载的白模的高度比例

Returns:
Number -

高度比例

getStyle() → {module:style~Style}

获取图层样式

Returns:
module:style~Style -

当前图层样式。

Example
let style = vectorLayer.getStyle();

removeAllFeatures()

删除所有地理要素

Example
vectorLayer.removeAllFeatures();

removeFeature(feature)

删除单个地理要素,如果要删除的地理要素不在图层上,则会返回false。

Parameters:
Name Type Description
feature module:feature~Vector

要删除的地理要素

Example
vectorLayer.removeFeature(feature);

removeFeatures(features)

删除一组地理要素。
被移除的地理要素将被彻底销毁。如果仅希望解除地理要素与图层的绑定,请先clone(),然后删除。

Parameters:
Name Type Description
features Array.<module:feature~Vector>

删除指定的地理要素

Example
vectorLayer.removeFeatures([feature]);

replaceFeatures(newFeatures)

使用新要素数组替换原图层所有要素。实现逻辑为先添加新要素,再删除原图层地理要素。

Parameters:
Name Type Description
newFeatures Array.<hmap.feature.Vector>

矢量地理要素数组

setClampMode(mode)

设置贴地模式

Parameters:
Name Type Description
mode String

贴地模式,具体说明见构造函数ClampMode可选项

setDepthTest(flag)

设置深度测试状态

Parameters:
Name Type Description
flag Boolean

setOpacity(opacity)

设置图层不透明度。
0表示完全透明,1表示完全不透明。从0到1,越来越不透明。

Parameters:
Name Type Default Description
opacity Number 1

图层透明度,介于0~1之间。

setStretchHeightScale(scale)

设置图层中承载的白模的高度比例

Parameters:
Name Type Description
scale Number

高度比例

setStyle(style)

设置图层样式。

Parameters:
Name Type Description
style module:style~Style

图层的样式对象。

Example
let style = hmap.style.Style.getDefault();
vectorLayer.setStyle(style);

updateFeature(feature)

更新已添加到图层中的指定的feature。

Parameters:
Name Type Description
feature module:feature~Vector

需要更新的要素

updateFeatures(features)

更新已添加到图层中的指定feature数组。

Parameters:
Name Type Description
features Array.<module:feature~Vector>

需要更新的要素数组