Class: Label

ol.source.Label

标签专题图图层源。

new ol.source.Label(name, opt_options)

openlayers/overlay/Label.js, line 17
Name Type Description
name string

名称。

opt_options Object

参数。

Name Type Default Description
map ol.Map

当前 Map 对象。

id string 可选

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

opacity number 1 可选

图层透明度。

attributions string | Object 可选

版权信息。

logo string 可选

Logo。

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

  • GeoFeature

Methods

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

openlayers/overlay/Label.js, line 471

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

Name Type Description
feature SuperMap.Feature.Vector

需要计算bounds的标签要素数。

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 528

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

Name Type Description
feature SuperMap.Feature.Vector

需要计算 bounds 的标签要素数。

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}]。

createThematicFeature(feature){SuperMap.Feature.Theme.Vector}

openlayers/overlay/Label.js, line 98

创建专题要素。

Name Type Description
feature SuperMap.Feature.Vector

矢量要素。

Returns:
Type Description
SuperMap.Feature.Theme.Vector 专题图矢量要素。

destroy()

openlayers/overlay/Label.js, line 87

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

getAvoidInfo(bounds, quadrilateral){Object}

openlayers/overlay/Label.js, line 783

获取避让的信息。

Name Type Description
bounds SuperMap.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 避让的信息。

getDrawnLabels(labelFeatures){Array.<SuperMap.Feature.Vector>}

openlayers/overlay/Label.js, line 159

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

Name Type Description
labelFeatures Array.<SuperMap.Feature.Vector>

所有标签要素的数组。

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

getLabelInfo(){Object}

openlayers/overlay/Label.js, line 622

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

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

getLabelPxLocation(feature){Object}

openlayers/overlay/Label.js, line 443

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

Name Type Description
feature SuperMap.Feature.Vector

标签要素。

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

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

openlayers/overlay/Label.js, line 757

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

Name Type Description
x number

旋转点横坐标。

y number

旋转点纵坐标。

rx number

旋转中心点横坐标。

ry number

旋转中心点纵坐标。

angle number

旋转角度

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

getStyleByData(feat){Array.<SuperMap.ThemeStyle>}

openlayers/overlay/Label.js, line 317

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

Name Type Description
feat SuperMap.Feature.Vector

矢量要素对象。

Returns:
Type Description
Array.<SuperMap.ThemeStyle> 专题要素的 Style。

isPointInPoly(pt, poly){boolean}

openlayers/overlay/Label.js, line 942

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

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 897

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

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 124

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

Name Type Description
bounds Array.<number>

重绘范围。

removeAllFeatures()

openlayers/overlay/Label.js, line 151

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

removeFeatures(features)

openlayers/overlay/Label.js, line 141

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

Name Type Description
features SuperMap.Feature.Vector

要删除的要素对象。

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

openlayers/overlay/Label.js, line 721

旋转 bounds。

Name Type Description
bounds SuperMap.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.<SuperMap.Feature.Vector>}

openlayers/overlay/Label.js, line 366

设置标签要素的 Style。

Name Type Description
labelFeatures Array.<SuperMap.Feature.Vector>

需要设置 Style 的标签要素数组。

Returns:
Type Description
Array.<SuperMap.Feature.Vector> 赋予 Style 后的标签要素数组。

setStyle(feat)

openlayers/overlay/Label.js, line 394

设置标签要素的 Style。

Name Type Description
feat SuperMap.Feature.Vector

需要赋予 style 的要素。