Class: LabelThemeLayer

LabelThemeLayer

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

new LabelThemeLayer(name, options)

Usage
import { LabelThemeLayer } from '@supermapgis/iclient-leaflet';

new LabelThemeLayer(name, options);
<script type="text/javascript" src="https://iclient.supermap.io/dist/leaflet/iclient-leaflet.js"></script>
<script>
  new L.supermap.LabelThemeLayer({paramsNames});
  // 弃用的写法

  L.supermap.labelThemeLayer(name, options);
</script>
leaflet/overlay/LabelThemeLayer.js, line 11
Name Type Description
name string

图层名。

options Object

参数。

Name Type Default Description
themeFields string

指定创建专题图字段。

id string 可选

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

isAvoid boolean true 可选

是否进行地图边缘的避让处理。

alwaysMapCRS boolean false 可选

要素坐标是否和地图坐标系一致,要素默认是经纬度坐标。

isOverLay boolean true 可选

是否进行压盖处理,如果设为 true,图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表。

opacity number 1 可选

图层不透明度。

nodesClipPixel number 2 可选

节点抽稀像素距离。

isHoverAble boolean false 可选

图形是否在 hover 时高亮。

isMultiHover boolean false 可选

是否多图形同时高亮,用于高亮同一个数据对应的所有图形(如:多面)。

isClickAble boolean true 可选

图形是否可点击。

isAllowFeatureStyle boolean false 可选

是否允许 feature 的 style 中的有效属性应用到专题图层。此属性可强制将数据 feature 的 style 中有效属性应用到专题要素上,且拥有比图层 style 和 styleGroups 更高的优先级,使专题要素的样式脱离专题图层的控制。可以通过此方式实现对特殊数据(feature)对应专题要素赋予独立 style。

attribution string 'Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' title='SuperMap iServer' target='_blank'>SuperMap iServer</a></span>' 可选

版权描述信息。

Extends

LabelThemeLayer -> GeoFeatureThemeLayer -> ThemeLayer -> L.Layer

Members

highlightStyleObject

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

styleObject

专题图样式。

styleGroupsObject

各专题类型样式组。

Events

inherited beforefeaturesadded

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 72

添加数据之前触发。

Properties:
Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

要素。

inherited changelayer

leaflet/overlay/theme/ThemeLayer.js, line 539

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

图层属性。

inherited featuresremoved

leaflet/overlay/theme/ThemeLayer.js, line 217

删除的要素成功之后触发。

Properties:
Name Type Description
features Array.<FeatureVector>

删除失败的要素数组。

succeed boolean

要素是否删除成功,true 为删除成功,false 为删除失败。

Methods

inherited addFeatures(features)

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 64

添加数据。

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待添加的要素。

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

leaflet/overlay/LabelThemeLayer.js, line 476

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

Name Type Description
feature FeatureVector

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

loc L.Point

标签位置。

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

leaflet/overlay/LabelThemeLayer.js, line 535

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

Name Type Description
feature FeatureVector

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

loc L.Point

标签位置。

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()

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 237

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

inherited clearCache()

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 228

清除缓存数据。

inherited createThematicFeature(feature){Array.<FeatureVector>}

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 187

创建专题要素。

Name Type Description
feature FeatureVector

要创建的要素。

Returns:
Type Description
Array.<FeatureVector> 返回矢量要素。

inherited destroyFeatures(features)

leaflet/overlay/theme/ThemeLayer.js, line 141

销毁要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector

将被销毁的要素。

getAvoidInfo(bounds, quadrilateral){Object}

leaflet/overlay/LabelThemeLayer.js, line 796

获取避让的信息。

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}

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 249

获取当前缓存数量。

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

getDrawnLabels(labelFeatures){Array.<FeatureVector>}

leaflet/overlay/LabelThemeLayer.js, line 163

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

Name Type Description
labelFeatures Array.<FeatureVector>

所有标签要素的数组。

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

inherited getEvents(){Object}

leaflet/overlay/theme/ThemeLayer.js, line 55

获取图层事件。

Returns:
Type Description
Object 返回图层事件。

inherited getFeatureById(featureId){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 282

返回指定 ID 的矢量要素,不存在则返回 null。

Name Type Description
featureId number

要素 ID。

Returns:
Type Description
Array.<FeatureVector> 返回图层中的要素。

inherited getFeatures(filter){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 245

查看当前图层中的有效数据。

Name Type Description
filter function 可选

根据条件过滤要素的回调函数。

Returns:
Type Description
Array.<FeatureVector> 返回图层中的要素。

getLabelInfo(){Object}

leaflet/overlay/LabelThemeLayer.js, line 631

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

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

getLabelPxLocation(feature){L.Point}

leaflet/overlay/LabelThemeLayer.js, line 449

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

Name Type Description
feature FeatureVector

标签要素。

Returns:
Type Description
L.Point 标签位置。

inherited getLocalXY(coordinate)

leaflet/overlay/theme/ThemeLayer.js, line 437

地理坐标转为像素坐标。

Name Type Description
coordinate Array

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

leaflet/overlay/LabelThemeLayer.js, line 768

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

Name Type Description
x number

旋转点横坐标。

y number

旋转点纵坐标。

rx number

旋转中心点横坐标。

ry number

旋转中心点纵坐标。

angle number

旋转角度。

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

inherited getShapesByFeatureID(featureID){Array}

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 271

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

Name Type Description
featureID number

要素 ID。

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

getStyleByData(feat){Array.<ThemeStyle>}

leaflet/overlay/LabelThemeLayer.js, line 322

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

Name Type Description
feat FeatureVector

矢量要素对象。

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

isPointInPoly(pt, poly){boolean}

leaflet/overlay/LabelThemeLayer.js, line 959

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

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}

leaflet/overlay/LabelThemeLayer.js, line 912

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

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表示压盖。

inherited off(event, callback, context)

leaflet/overlay/theme/ThemeLayer.js, line 398

移除事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited on(event, callback, context)

leaflet/overlay/theme/ThemeLayer.js, line 382

监听事件。监听专题要素事件。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited onRemove(map)

leaflet/overlay/theme/ThemeLayer.js, line 73

删除某个地图。

Name Type Description
map L.Map

Leaflet Map 对象。

inherited redraw()

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 219

重绘该图层。

redrawThematicFeatures(bounds)

leaflet/overlay/LabelThemeLayer.js, line 126

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

Name Type Description
bounds L.Bounds

重绘范围。

removeAllFeatures()

leaflet/overlay/LabelThemeLayer.js, line 154

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

removeFeatures(features)

leaflet/overlay/LabelThemeLayer.js, line 144

从专题图中删除要素。这个函数删除所有传递进来的矢量要素。参数中的要素数组中的每一项,必须是已经添加到当前图层中的 feature。

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

要删除的要素或用于条件删除的回调函数。

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

leaflet/overlay/LabelThemeLayer.js, line 730

旋转 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>}

leaflet/overlay/LabelThemeLayer.js, line 371

设置标签要素的风格。

Name Type Description
labelFeatures Array.<FeatureVector>

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

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

inherited setMaxCacheCount(cacheCount)

leaflet/overlay/theme/GeoFeatureThemeLayer.js, line 258

设置最大缓存数量。

Name Type Description
cacheCount number

最大缓存量。

inherited setOpacity(opacity)

leaflet/overlay/theme/ThemeLayer.js, line 347

设置图层的不透明度,取值范围:[0-1]。

Name Type Description
opacity number

不透明度。

setStyle(feat)

leaflet/overlay/LabelThemeLayer.js, line 399

设置标签要素的风格。

Name Type Description
feat FeatureVector

需要赋予风格的要素。

inherited deprecated toFeature(features){FeatureVector}

leaflet/overlay/theme/ThemeLayer.js, line 497

转为 iClient 要素,该方法将被弃用,由 ThemeLayer#toiClientFeature 代替。

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待转换要素。

Returns:
Type Description
FeatureVector 转换后的 iClient 要素。

inherited toiClientFeature(features){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 462

转为 iClient 要素。

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待转换要素。

Returns:
Type Description
Array.<FeatureVector> 转换后的 iClient 要素。

inherited update(bounds)

leaflet/overlay/theme/ThemeLayer.js, line 312

更新图层。

Name Type Description
bounds L.Bounds

图层范围。