Class: Theme

Theme

专题图基类。

new Theme(name, opt_option)

Usage
// 浏览器
<script type="text/javascript" src="https://iclient.supermap.io/dist/openlayers/iclient-ol.js"></script>
<script>
  new ol.source.Theme(name, opt_option);
  
</script>

// ES6 Import
import { Theme } from '@supermap/iclient-ol';

new Theme(name, opt_option);

openlayers/overlay/theme/Theme.js, line 18
Name Type Description
name string

专题图图层名称。

opt_option Object

参数。

Name Type Default Description
map ol.Map

当前 openlayers 的 Map 对象。

id string 可选

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

opacity number 1 可选

图层透明度。

logo string 可选

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

projection ol.proj.Projection 可选

投影信息。

ratio number 1.5 可选

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

resolutions Array 可选

分辨率数组。

state ol.source.State 可选

资源状态。

attributions string | Object 'Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a></span>' 可选

版权信息。

Extends

Methods

addFeatures(features)

openlayers/overlay/theme/Theme.js, line 189

抽象方法,可实例化子类必须实现此方法。向专题图图层中添加数据, 专题图仅接收 FeatureVector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。

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

待添加要素。

destroy()

openlayers/overlay/theme/Theme.js, line 131

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

destroyFeatures(features)

openlayers/overlay/theme/Theme.js, line 150

销毁要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector

将被销毁的要素。

fire(type, event)

openlayers/overlay/theme/Theme.js, line 364

添加专题要素事件监听。

Name Type Description
type string

事件类型。

event string

事件名称。

getFeatureBy(property, value){FeatureVector}

openlayers/overlay/theme/Theme.js, line 285

在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。

Name Type Description
property string

feature 的某个属性名称。

value string

property 所对应的值。

Returns:
Type Description
FeatureVector 第一个匹配属性和值的矢量要素。

getFeatureById(featureId){FeatureVector}

openlayers/overlay/theme/Theme.js, line 305

通过给定一个 ID,返回对应的矢量要素。

Name Type Description
featureId string

矢量要素的属性 ID。

Returns:
Type Description
FeatureVector 对应 ID 的 feature,如果不存在则返回 null。

getFeatures(filter){Array.<FeatureVector>}

openlayers/overlay/theme/Theme.js, line 268

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

Name Type Description
filter function 可选

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

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

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

openlayers/overlay/theme/Theme.js, line 315

通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。

Name Type Description
attrName string

属性的 key。

attrValue string

矢量要素的属性 ID。

Returns:
Type Description
Array.<FeatureVector> 一个匹配的 feature 数组。

getLocalXY(coordinate){Array.<number>}

openlayers/overlay/theme/Theme.js, line 469

获取坐标系统。

Name Type Description
coordinate Object

坐标位置。

Returns:
Type Description
Array.<number> 像素坐标数组。

on(event, callback)

openlayers/overlay/theme/Theme.js, line 51

添加专题要素事件监听。支持的事件包括: click、mousedown、mousemove、mouseout、mouseover、mouseup。

Name Type Description
event string

事件名称。

callback RequestCallback

事件回调函数。

redrawThematicFeatures(extent)

openlayers/overlay/theme/Theme.js, line 337

抽象方法,可实例化子类必须实现此方法。重绘专题要素。

Name Type Description
extent Array

当前级别下计算出的地图范围。

removeAllFeatures()

openlayers/overlay/theme/Theme.js, line 256

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

removeFeatures(features)

openlayers/overlay/theme/Theme.js, line 200

从专题图中删除 feature。这个函数删除所有传递进来的矢量要素。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有 feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有 feature 后再重新添加。这样效率会更高。

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

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

rotate(pixelP, rotation, center){Array.<number>}

openlayers/overlay/theme/Theme.js, line 498

获取某像素坐标点 pixelP 绕中心 center 逆时针旋转 rotation 弧度后的像素点坐标。

Name Type Description
pixelP number

像素坐标点位置。

rotation number

旋转角度。

center number

中心位置。

Returns:
Type Description
Array.<number> 旋转后的像素坐标数组。

scale(pixelP, center, scaleRatio){Array.<number>}

openlayers/overlay/theme/Theme.js, line 512

获取某像素坐标点 pixelP 相对于中心 center 进行缩放 scaleRatio 倍后的像素点坐标。

Name Type Description
pixelP Object

像素点。

center Object

中心点。

scaleRatio number

缩放倍数。

Returns:
Type Description
Array.<number> 返回数组型比例。

setOpacity(opacity)

openlayers/overlay/theme/Theme.js, line 171

设置图层的不透明度,取值[0-1]之间。

Name Type Description
opacity number

不透明度。

deprecated toFeature(features){Array.<FeatureVector>}

openlayers/overlay/theme/Theme.js, line 568

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

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

待转要素。

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

toiClientFeature(features){Array.<FeatureVector>}

openlayers/overlay/theme/Theme.js, line 526

转为 iClient 要素。

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

待转要素。

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

un(event, callback)

openlayers/overlay/theme/Theme.js, line 431

移除专题要素事件监听。

Name Type Description
event string

事件名称。

callback RequestCallback

事件回调函数。