Class: Label

Label

标签专题图图层源。标签专题图是用文本形式在图层上直接显示属性表中的数据,实质上是对图层的标注。 不仅帮助用户更好地区分地物要素,同时也显示了要素的某些重要属性,如行政区划、河流、机关、旅游景点的名称、等高线的高程等。 在 SuperMap 中,通过制作标签专题图,用户可以轻松实现地图标注。

new Label(name, opt_options)

Usage
import { Label } from '@supermapgis/iclient-ol';

new Label(name, opt_options);
<script type="text/javascript" src="https://iclient.supermap.io/dist/openlayers/iclient-ol.js"></script>
<script>
  new ol.source.Label({paramsNames});
</script>
openlayers/overlay/Label.js, line 15
Name Type Description
name string

名称。

opt_options Object

参数。

Name Type Default Description
map ol.Map

当前 OpenLayers 地图对象。

id string 可选

专题图层 ID。默认使用 CommonUtil.createUniqueID("themeLayer_") 创建专题图层 ID。

opacity number 1 可选

图层不透明度。

attributions string | Object 可选

版权描述信息。

logo string 可选

Logo(OpenLayers 5.0.0 及更高版本不再支持此参数)。

projection ol.proj.Projection 可选

投影信息。

ratio number 1.5 可选

视图比,1 表示画布是地图视口的大小,2 表示地图视口的宽度和高度的两倍,依此类推。必须是 1 或更高。

resolutions Array.<number> 可选

分辨率数组。

state ol.source.State 可选

资源状态。

themeField string 可选

指定创建专题图字段。

style Object 可选

专题图样式。

styleGroups Object 可选

各专题类型样式组。

isHoverAble boolean false 可选

是否开启 hover 事件。

highlightStyle Object 可选

开启 hover 事件后,触发的样式风格。

Extends

Label -> GeoFeature -> Theme -> ol.source.ImageCanvas

Methods

inherited addFeatures(features)

openlayers/overlay/theme/GeoFeature.js, line 69

添加要素。

Name Type Description
features Array.<ThemeFeature> | Array.<GeoJSONObject> | Array.<ol.Feature> | ThemeFeature | GeoJSONObject | ol.Feature

要素对象。

calculateLabelBounds(feature, loc){Array.<Object>}

openlayers/overlay/Label.js, line 475

获得标签要素的最终范围。

Name Type Description
feature FeatureVector

需要计算范围的标签要素数。

loc Object

标签位置,例如:{"x":1,"y":1}。

Returns:
Type Description
Array.<Object> 四边形节点数组。例如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

calculateLabelBounds2(feature, loc){Array.<Object>}

openlayers/overlay/Label.js, line 532

获得标签要素的最终范围的另一种算法(通过记录下的标签宽高),提高计算范围的效率。

Name Type Description
feature FeatureVector

需要计算范围的标签要素数。

loc Object

标签位置,例如:{"x":1,"y":1}。

Returns:
Type Description
Array.<Object> 四边形节点数组。例如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

inherited clear()

openlayers/overlay/theme/GeoFeature.js, line 222

清除的内容包括数据(features)、专题要素、缓存。

inherited clearCache()

openlayers/overlay/theme/GeoFeature.js, line 213

清除缓存。

destroy()

openlayers/overlay/Label.js, line 90

释放资源,将引用资源的属性置空。

getAvoidInfo(bounds, quadrilateral){Object}

openlayers/overlay/Label.js, line 787

获取避让的信息。

Name Type Description
bounds Bounds

地图像素范围。

quadrilateral Array.<Object>

四边形节点数组。例如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

Returns:
Type Description
Object 避让的信息。

inherited getCacheCount(){number}

openlayers/overlay/theme/GeoFeature.js, line 233

获取当前缓存数量。

Returns:
Type Description
number 返回当前缓存数量。

getDrawnLabels(labelFeatures){Array.<FeatureVector>}

openlayers/overlay/Label.js, line 163

获取经(压盖)处理后将要绘制在图层上的标签要素。

Name Type Description
labelFeatures Array.<FeatureVector>

所有标签要素的数组。

Returns:
Type Description
Array.<FeatureVector> 最终要绘制的标签要素数组。

getLabelInfo(){Object}

openlayers/overlay/Label.js, line 626

根据当前位置获取绘制后的标签信息,包括标签的宽,高和行数等。

Returns:
Type Description
Object 绘制后的标签信息。

getLabelPxLocation(feature){Object}

openlayers/overlay/Label.js, line 447

获取标签要素的像素坐标。

Name Type Description
feature FeatureVector

标签要素。

Returns:
Type Description
Object 标签位置,例如:{"x":1,"y":1}。

getRotatedLocation(x, y, rx, ry, angle){Object}

openlayers/overlay/Label.js, line 761

获取一个点绕旋转中心顺时针旋转后的位置。(此方法用于屏幕坐标)。

Name Type Description
x number

旋转点横坐标。

y number

旋转点纵坐标。

rx number

旋转中心点横坐标。

ry number

旋转中心点纵坐标。

angle number

旋转角度。

Returns:
Type Description
Object 旋转后的坐标位置对象,该对象含有属性 x(横坐标),属性 y(纵坐标)。

inherited getShapesByFeatureID(featureID){Array}

openlayers/overlay/theme/GeoFeature.js, line 254

通过要素 ID 获取要素关联的所有图形。如果不传入此参数,函数将返回所有图形。

Name Type Description
featureID number

要素 ID。

Returns:
Type Description
Array 返回图形数组。

getStyleByData(feat){Array.<ThemeStyle>}

openlayers/overlay/Label.js, line 321

根据用户数据(feature)设置专题要素的风格。

Name Type Description
feat FeatureVector

矢量要素对象。

Returns:
Type Description
Array.<ThemeStyle> 专题要素的风格。

isPointInPoly(pt, poly){boolean}

openlayers/overlay/Label.js, line 946

判断一个点是否在多边形里面(射线法)。

Name Type Description
pt Object

需要判定的点对象,该对象含有属性 x(横坐标),属性 y(纵坐标)。

poly Array.<Object>

多边形节点数组。例如一个四边形:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

Returns:
Type Description
boolean 点是否在多边形内。

isQuadrilateralOverLap(quadrilateral, quadrilateral2){boolean}

openlayers/overlay/Label.js, line 901

判断两个四边形是否有压盖。

Name Type Description
quadrilateral Array.<Object>

四边形节点数组。例如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

quadrilateral2 Array.<Object>

第二个四边形节点数组。

Returns:
Type Description
boolean 是否压盖,true 表示压盖。

redrawThematicFeatures(bounds)

openlayers/overlay/Label.js, line 128

重绘所有专题要素。 此方法包含绘制专题要素的所有步骤,包含用户数据到专题要素的转换,抽稀,缓存等步骤。 地图漫游时调用此方法进行图层刷新。

Name Type Description
bounds Array.<number>

重绘范围。

removeAllFeatures()

openlayers/overlay/Label.js, line 155

清除当前图层所有的矢量要素。

removeFeatures(features)

openlayers/overlay/Label.js, line 145

从专题图中删除要素。这个函数删除所有传递进来的矢量要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector | function

待删除的要素对象或用于过滤的回调函数。

rotationBounds(bounds, rotationCenterPoi, angle){Array.<Object>}

openlayers/overlay/Label.js, line 725

旋转 bounds。

Name Type Description
bounds Bounds

要旋转的 bounds。

rotationCenterPoi Object

旋转中心点对象,此对象含有属性 x(横坐标),属性 y(纵坐标)。

angle number

旋转角度(顺时针)。

Returns:
Type Description
Array.<Object> bounds 旋转后形成的多边形节点数组。是一个四边形,形如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

setLabelsStyle(labelFeatures){Array.<FeatureVector>}

openlayers/overlay/Label.js, line 370

设置标签要素的风格。

Name Type Description
labelFeatures Array.<FeatureVector>

需要设置风格的标签要素数组。

Returns:
Type Description
Array.<FeatureVector> 赋予风格后的标签要素数组。

inherited setMaxCacheCount(cacheCount)

openlayers/overlay/theme/GeoFeature.js, line 242

设置最大缓存条数。

Name Type Description
cacheCount number

缓存总数。

setStyle(feat)

openlayers/overlay/Label.js, line 398

设置标签要素的风格。

Name Type Description
feat FeatureVector

需要赋予风格的要素。