Class: ThemeLayer

ThemeLayer

专题图基类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。 在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 调用建议:使用其子类实现该类。

new ThemeLayer(name, options)

Usage
// 浏览器
<script type="text/javascript" src="https://iclient.supermap.io/dist/mapboxgl/iclient-mapboxgl.js"></script>
<script>
  new mapboxgl.supermap.ThemeLayer(name, options);
  
</script>

// ES6 Import
import { ThemeLayer } from '@supermapgis/iclient-mapboxgl';

new ThemeLayer(name, options);

mapboxgl/overlay/theme/ThemeLayer.js, line 16
Name Type Description
name string

专题图图层名。

options Object

可选参数。

Name Type Default Description
map mapboxgl.Map

MapBoxGL Map 对象,将在下个版本弃用,请用 map.addLayer()方法添加图层。

id string 可选

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

loadWhileAnimating boolean true 可选

是否实时重绘。

visibility boolean true 可选

图层是否可见。

opacity number 1 可选

图层不透明度。

Fires

Members

idstring

专题图图层 ID。

loadWhileAnimatingboolean

是否实时重绘。(当绘制大数据量要素的情况下会出现卡顿,建议把该参数设为 false)。

Default Value:
true

MapBoxGL Map 对象。

namestring

专题图图层名称。

opacitynumber

图层不透明度。

Default Value:
1

visibilityboolean

图层是否可见。

Default Value:
true

Events

changelayer

mapboxgl/overlay/theme/ThemeLayer.js, line 198

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

被改变的属性。

featuresremoved

mapboxgl/overlay/theme/ThemeLayer.js, line 270

要素删除之后触发。

Properties:
Name Type Description
features Array.<FeatureVector>

未被成功删除的要素。

succeed boolean

删除成功与否。

Methods

addFeatures(features)

mapboxgl/overlay/theme/ThemeLayer.js, line 209

向专题图图层中添加数据

Name Type Description
features ThemeFeature | ServerFeature | GeoJSONObject

待添加要素。

destroyFeatures(features)

mapboxgl/overlay/theme/ThemeLayer.js, line 142

销毁要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector

将被销毁的要素。

display(display)

mapboxgl/overlay/theme/ThemeLayer.js, line 176

隐藏或者显示图层。(通过对 CSS 控制产生即时效果,重新渲染失效。)

Name Type Description
display boolean 可选

是否显示图层。

getFeatureBy(property, value){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 308

在专题图的要素中,获取第一个feature[property] === value的矢量要素。

Name Type Description
property string

属性名称。

value string

属性值。

Returns:
Type Description
FeatureVector 矢量要素。

getFeatureById(featureId){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 326

获取指定 featureId 的矢量要素。

Name Type Description
featureId string

矢量要素的属性 ID。

Returns:
Type Description
FeatureVector 对应 featureId 的矢量要素,不存在则返回 null。

getFeatures(filter){Array.<FeatureVector>}

mapboxgl/overlay/theme/ThemeLayer.js, line 291

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

Name Type Description
filter function 可选

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

Returns:
Type Description
Array.<FeatureVector> 用户加入图层的有效数据。

getFeaturesByAttribute(attrName, attrValue){Array.<FeatureVector>}

mapboxgl/overlay/theme/ThemeLayer.js, line 336

通过给定一个属性的 key 值和 value 值,获取匹配的要素数组。

Name Type Description
attrName string

属性的 key 值。

attrValue string

属性的 value 值。

Returns:
Type Description
Array.<FeatureVector> 要素数组。

getLocalXY(coordinate){Array}

mapboxgl/overlay/theme/ThemeLayer.js, line 412

地理坐标转为像素坐标。

Name Type Description
coordinate Object 可选

坐标位置。

Returns:
Type Description
Array 长度为 2 的像素坐标数组,第一个元素表示 x 坐标,第二个元素表示 y 坐标。

moveTo(layerID, before)

mapboxgl/overlay/theme/ThemeLayer.js, line 586

将图层移动到某个图层之前。

Name Type Default Description
layerID string

待插入的图层 ID。

before boolean true 可选

是否将本图层插入到图层 ID 为 layerID 的图层之前。

off(event, callback, context)

mapboxgl/overlay/theme/ThemeLayer.js, line 381

移除专题要素事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

on(event, callback, context)

mapboxgl/overlay/theme/ThemeLayer.js, line 365

添加专题要素事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

onAdd()

mapboxgl/overlay/theme/ThemeLayer.js, line 83

添加该图层。

redrawThematicFeatures(extent)

mapboxgl/overlay/theme/ThemeLayer.js, line 357

重绘专题要素。

Name Type Description
extent mapboxgl.LngLatBounds

重绘的范围。

refresh()

mapboxgl/overlay/theme/ThemeLayer.js, line 108

强制刷新当前热点显示,在图层热点数组发生变化后调用,更新显示。

removeAllFeatures()

mapboxgl/overlay/theme/ThemeLayer.js, line 279

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

removeFeatures(features)

mapboxgl/overlay/theme/ThemeLayer.js, line 218

删除专题图中的要素。 参数中的要素数组中的每一项,必须是已经添加到当前图层中的要素, 如果要删除的要素数组中的元素过多,推荐使用 removeAllFeatures删除所有要素后,再重新添加。这样效率会更高。

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

待删除要素的数组或用来过滤的回调函数。

removeFromMap()

mapboxgl/overlay/theme/ThemeLayer.js, line 577

移除图层。

setOpacity(opacity)

mapboxgl/overlay/theme/ThemeLayer.js, line 185

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

Name Type Description
opacity number 可选

不透明度,取值[0-1]之间。

setVisibility(visibility)

mapboxgl/overlay/theme/ThemeLayer.js, line 163

设置图层可见性。

Name Type Description
visibility boolean 可选

是否显示图层(当前地图的 resolution 在最大最小 resolution 之间)。

deprecated toFeature(features){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 465

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

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

待转要素。

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

toiClientFeature(features){Array.<FeatureVector>}

mapboxgl/overlay/theme/ThemeLayer.js, line 431

转为 iClient 要素。

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

待转要素。

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