new mapboxgl.supermap.LabelThemeLayer(name, opt_options)
Name | Type | Default | Description | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string |
图层名。 |
|||||||||||||||||||||||||||||||||||||
opt_options |
Object |
参数。
|
|||||||||||||||||||||||||||||||||||||
options.isAvoid |
boolean | true |
可选
是否进行地图边缘的避让处理。 |
||||||||||||||||||||||||||||||||||||
options.isOverLay |
boolean | true |
可选
是否进行压盖处理,如果设为 true,图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表。 |
||||||||||||||||||||||||||||||||||||
opt_options.isHoverAble |
boolean |
可选
是否开启 hover 事件。 |
Extends
Members
-
highlightStyleSuperMap.ThemeStyle
-
专题图图层高亮样式。
-
idstring
-
专题图图层 id。
-
isAllowFeatureStyleboolean
-
是否允许 feature 样式(style) 中的有效属性应用到专题图层。 禁止对专题要素使用数据(feature)的 style。此属性可强制将数据 feature 的 style 中有效属性应用到专题要素上,且拥有比图层 style 和 styleGroups 更高的优先级,使专题要素 的样式脱离专题图层的控制。可以通过此方式实现对特殊数据(feature) 对应专题要素赋予独立 style。
-
isAvoidboolean
-
是否进行地图边缘的避让处理,如果设为 true,将把与地图边缘相交的标签移到地图范围内,在地图边缘处做避让处理。
- Default Value: true
isClickAbleboolean
图形是否可点击。
- Default Value: true
isHoverAbleboolean
图形是否在 hover 时高亮。
isMultiHoverboolean
是否多图形同时高亮,用于高亮同一个数据对应的所有图形(如:多面)。
isOverLayboolean
是否进行压盖处理,如果设为 true,将隐藏被压盖的标签。
- Default Value: true
loadWhileAnimatingboolean
是否实时重绘。(当绘制大数据量要素的情况下会出现卡顿,建议把该参数设为 false)。
- Default Value: true
mapmapboxgl.Map
map 对象。
namestring
专题图图层名称。
nodesClipPixelnumber
节点抽稀像素距离。
- Default Value: 2
opacityfloat
图层透明度。
- Default Value: 1
styleSuperMap.ThemeStyle
专题图图层全局样式。
styleGroupsArray.<Object>
分组样式。使用此属性需要设置 themeField 属性。 1.没有同时设置 themeField 和 styleGroups,则所有专题要素都使用本图层的 style 进行渲染; 2.同时设置 themeField 和 styleGroups,则按照 themeField 指定的字段名称获取用户数据(feature)attributes 中对应的属性值; a.如果属性值等于 styleGroups 数组里某个元素定义的 value 值,则此专题要素取 styleGroups 数组中该元素定义的 style 进行渲染。 b.如果属性值不等于 styleGroups 数组里任何元素定义的 value 值,则此专题要素按照本图层的 style 进行渲染。 此数组每个元素对象必须有两个属性:value : 与字段 themeField 相对应的属性值;style:专题要素 style。
themeFieldstring
用于指定专题要素样式的属性字段名称。 此属性字段是要用户数据(feature) attributes 中包含的字段,且字段对应的值的类型必须是数值型。 使用标签分组显示还需要设置 styleGroups 属性。
visibilityboolean
图层是否可见。
- Default Value: true
Events
-
inherited beforefeaturesadded
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 95 -
要素添加之前触发。
Properties:
Name Type Description features
mapboxgl.supermap.ThemeFeature | SuperMap.ServerFeature 被添加的要素。
-
inherited changelayer
mapboxgl/overlay/theme/ThemeLayer.js, line 193 -
图层属性改变之后触发。
Properties:
Name Type Description layer
Object 图层。
property
string 被改变的属性。
-
inherited featuresremoved
mapboxgl/overlay/theme/ThemeLayer.js, line 256 -
要素删除之后触发。
Properties:
Name Type Description features
Array.<SuperMap.Feature.Vector> 未被成功删除的要素。
succeed
boolean 删除成功与否。
Methods
-
inherited addFeatures(features)
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 89 -
添加要素。
Name Type Description features
mapboxgl.supermap.ThemeFeature | SuperMap.ServerFeature 要素对象。
-
calculateLabelBounds(feature, loc){Array.<Object>}
mapboxgl/overlay/LabelThemeLayer.js, line 493 -
获得标签要素的最终范围。
Name Type Description feature
SuperMap.Feature.Vector 需要计算 bounds 的标签要素数。
loc
mapboxgl.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>}
mapboxgl/overlay/LabelThemeLayer.js, line 552 -
获得标签要素的最终范围的另一种算法(通过记录下的标签宽高),提高计算 bounds 的效率。
Name Type Description feature
SuperMap.Feature.Vector 需要计算 bounds 的标签要素数。
loc
mapboxgl.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()
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 239 -
清除的内容包括数据(features)、专题要素和缓存。
-
inherited clearCache()
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 230 -
清除缓存。
-
createThematicFeature(feature)
mapboxgl/overlay/LabelThemeLayer.js, line 147 -
创建专题图要素。
Name Type Description feature
Object 要创建的专题图形要素。
-
inherited destroyFeatures(features)
mapboxgl/overlay/theme/ThemeLayer.js, line 140 -
销毁某个要素。
Name Type Description features
SuperMap.Feature.Vector 将被销毁的要素。
-
inherited display(display)
mapboxgl/overlay/theme/ThemeLayer.js, line 171 -
临时隐藏或者显示图层。通过对 CSS 控制产生即时效果,重新渲染失效。一般用 setVisibility 方法来动态控制图层的显示和隐藏。
Name Type Description display
boolean 可选 是否显示图层。
-
getAvoidInfo(bounds, quadrilateral){Object}
mapboxgl/overlay/LabelThemeLayer.js, line 813 -
获取避让的信息。
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 避让的信息。 -
inherited getCacheCount(){number}
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 250 -
获取当前缓存数量。
Returns:
Type Description number 当前缓存数量。 -
getDrawnLabels(labelFeatures){Array.<SuperMap.Feature.Vector>}
mapboxgl/overlay/LabelThemeLayer.js, line 175 -
获取经(压盖)处理后将要绘制在图层上的标签要素。
Name Type Description labelFeatures
Array.<SuperMap.Feature.Vector> 所有标签要素的数组。
Returns:
Type Description Array.<SuperMap.Feature.Vector> 最终要绘制的标签要素数组。 -
inherited getFeatureBy(property, value){SuperMap.Feature.Vector}
mapboxgl/overlay/theme/ThemeLayer.js, line 291 -
在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。
Name Type Description property
string feature 的某个属性名称。
value
string property 所对应的值。
Returns:
Type Description SuperMap.Feature.Vector 第一个匹配属性和值的矢量要素。 -
inherited getFeatureById(featureId){SuperMap.Feature.Vector}
mapboxgl/overlay/theme/ThemeLayer.js, line 310 -
通过给定一个 id,返回对应的矢量要素。
Name Type Description featureId
string 矢量要素的属性 id。
Returns:
Type Description SuperMap.Feature.Vector 对应 id 的 feature,如果不存在则返回 null。 -
inherited getFeatures(){SuperMap.Feature.Vector}
mapboxgl/overlay/theme/ThemeLayer.js, line 277 -
查看当前图层中的有效数据。
Returns:
Type Description SuperMap.Feature.Vector 用户加入图层的有效数据。 -
inherited getFeaturesByAttribute(attrName, attrValue){Array.<SuperMap.Feature.Vector>}
mapboxgl/overlay/theme/ThemeLayer.js, line 320 -
通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。
Name Type Description attrName
string 属性的 key。
attrValue
string 矢量要素的属性 id。
Returns:
Type Description Array.<SuperMap.Feature.Vector> 一个匹配的 feature 数组。 -
getLabelInfo(){Object}
mapboxgl/overlay/LabelThemeLayer.js, line 648 -
根据当前位置获取绘制后的标签信息,包括标签的宽,高和行数等。
Returns:
Type Description Object 绘制后的标签信息。 -
getLabelPxLocation(feature){mapboxgl.Point}
mapboxgl/overlay/LabelThemeLayer.js, line 466 -
获取标签要素的像素坐标。
Name Type Description feature
SuperMap.Feature.Vector 标签要素。
Returns:
Type Description mapboxgl.Point 标签位置。 -
inherited getLocalXY(coordinate)
mapboxgl/overlay/theme/ThemeLayer.js, line 396 -
地理坐标转为像素坐标。
Name Type Description coordinate
Object 可选 坐标位置。
-
getRotatedLocation(x, y, rx, ry, angle){Object}
mapboxgl/overlay/LabelThemeLayer.js, line 785 -
获取一个点绕旋转中心顺时针旋转后的位置(此方法用于屏幕坐标)。
Name Type Description x
number 旋转点横坐标。
y
number 旋转点纵坐标。
rx
number 旋转中心点横坐标。
ry
number 旋转中心点纵坐标。
angle
number 旋转角度。
Returns:
Type Description Object 旋转后的坐标位置对象,该对象含有属性X(横坐标),属性Y(纵坐标)。 -
getStyleByData(feat){Array.<SuperMap.ThemeStyle>}
mapboxgl/overlay/LabelThemeLayer.js, line 339 -
根据用户数据(feature)设置专题要素的 Style。
Name Type Description feat
SuperMap.Feature.Vector 矢量要素对象。
Returns:
Type Description Array.<SuperMap.ThemeStyle> 专题要素的 Style。 -
isPointInPoly(pt, poly){boolean}
mapboxgl/overlay/LabelThemeLayer.js, line 973 -
判断一个点是否在多边形里面。(射线法)
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}
mapboxgl/overlay/LabelThemeLayer.js, line 928 -
判断两个四边形是否有压盖。
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 moveTo(layerID, before)
mapboxgl/overlay/theme/ThemeLayer.js, line 569 -
将图层移动到某个图层之前。
Name Type Default Description layerID
string 待插入的图层 ID。
before
boolean true 可选 是否将本图层插入到图层 id 为 layerID 的图层之前(如果为 false 则将本图层插入到图层 id 为 layerID 的图层之后)。
-
inherited off(event, callback, context)
mapboxgl/overlay/theme/ThemeLayer.js, line 365 -
移除专题要素事件监听。
Name Type Description event
Event 监听事件。
callback
function 回调函数。
context
string 信息。
-
inherited on(event, callback, context)
mapboxgl/overlay/theme/ThemeLayer.js, line 349 -
添加专题要素事件监听。添加专题要素事件监听。
Name Type Description event
Event 监听事件。
callback
function 回调函数。
context
string 信息。
-
inherited onAdd()
mapboxgl/overlay/theme/ThemeLayer.js, line 81 -
向底图添加该图层。
-
redrawThematicFeatures(bounds)
mapboxgl/overlay/LabelThemeLayer.js, line 111 -
重绘所有专题要素。 此方法包含绘制专题要素的所有步骤,包含用户数据到专题要素的转换,抽稀,缓存等步骤。 地图漫游时调用此方法进行图层刷新。
Name Type Description bounds
mapboxgl.LngLatBounds 重绘范围。
-
removeAllFeatures()
mapboxgl/overlay/LabelThemeLayer.js, line 138 -
清除当前图层所有的矢量要素。
-
removeFeatures(features)
mapboxgl/overlay/LabelThemeLayer.js, line 128 -
从专题图中删除 feature。这个函数删除所有传递进来的矢量要素。
Name Type Description features
SuperMap.Feature.Vector 要删除的要素对象。
-
inherited removeFromMap()
mapboxgl/overlay/theme/ThemeLayer.js, line 560 -
移除图层。
-
rotationBounds(bounds, rotationCenterPoi, angle){Array.<Object>}
mapboxgl/overlay/LabelThemeLayer.js, line 747 -
旋转 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>}
mapboxgl/overlay/LabelThemeLayer.js, line 388 -
设置标签要素的 Style。
Name Type Description labelFeatures
Array.<SuperMap.Feature.Vector> 需要设置 Style 的标签要素数组。
Returns:
Type Description Array.<SuperMap.Feature.Vector> 赋予 Style 后的标签要素数组。 -
inherited setMaxCacheCount(cacheCount)
mapboxgl/overlay/theme/GeoFeatureThemeLayer.js, line 259 -
设置最大缓存条数。
Name Type Description cacheCount
number 可选 缓存总数。
-
inherited setOpacity(opacity)
mapboxgl/overlay/theme/ThemeLayer.js, line 180 -
设置图层的不透明度,取值[0-1]之间。
Name Type Description opacity
number 可选 不透明度。
-
setStyle(feat)
mapboxgl/overlay/LabelThemeLayer.js, line 416 -
设置标签要素的Style。
Name Type Description feat
SuperMap.Feature.Vector 需要赋予 style 的要素。
-
inherited setVisibility(visibility)
mapboxgl/overlay/theme/ThemeLayer.js, line 158 -
设置图层可见性,设置图层的隐藏,显示,重绘的相应的可见标记。
Name Type Description visibility
boolean 可选 是否显示图层(当前地图的 resolution 在最大最小 resolution 之间)。
-
inherited toFeature(features){SuperMap.Feature.Vector}
mapboxgl/overlay/theme/ThemeLayer.js, line 414 -
转为 iClient 要素。
Name Type Description features
mapboxgl.supermap.ThemeFeature | GeoJSONObject 待转要素。
Returns:
Type Description SuperMap.Feature.Vector 转换后的 iClient 要素。