SuperMap.Layer.AnimatorVector

该图层用于渲染动态矢量要素。

目的在于表达现实事物在时间上的空间变化,如车辆监控、气象模拟等

Inherits from

Summary
SuperMap.Layer.AnimatorVector 该图层用于渲染动态矢量要素。
Properties
animator {SuperMap.Animator} 动画管理。 用于控制动态图层渲染管理。
featureIdName {String} 确认是同一实物的字段名称。默认为”FEATUREID”。 例如:用户在数据库中存放了车辆监控的信息,其中以字段”CARNAME”作为确认一辆车的唯一标识, 则此处就需要设置 featureIdName = “CARNAME”
needRecordDrawedFeature {Boolean} 是否需要记录绘制过的要素,默认为false
renderer 渲染方式,在初始化 AnimatorVector 时根据 rendererType 属性生成, 这里只会是动画渲染,即 AnimatorCanvas 或它的子类,如果浏览器不支持则为空 {SuperMap.Renderer}
rendererType {String} 渲染类型,当前支持: 1、基本动画渲染:”AnimatorCanvas” 2、点闪烁、尾巴渲染:”TadpolePoint” 3、线伸缩渲染:”StretchLine” 4、点发射渲染:”RadiatePoint” 默认为 “AnimatorCanvas”
smooth {Boolean} 是否开启平滑播放效果,默认为true。 平滑播放指在前后两个动画状态之间加入渐变的动画帧, 使动画播放的协调,但相应播放的过多,会导致效率降低。
timeName {String} 确认同一实物的不同时间段的字段名称,默认为”TIME”字段。 例如:用户在数据库中存放了车辆监控的信息,以字段”CARNAME”作为确认一辆车的唯一标识, 其中一辆名称为car1的车在数据库中有很多条数据(每隔一段时间记录一条数据),而使用”CARTIME”来 存放每条数据在获取时的具体时刻,则此处就需要设置 timeName = “CARTIME”
Constants
EVENT_TYPES {Array(String)} 此类支持的事件类型。
Constructor
SuperMap.Layer.AnimatorVector 创建一个矢量动画图层。
Functions
addFeatures 给这个矢量动画图层添加features。
destroy 销毁AnimatorVector图层,释放资源。
display 临时隐藏或者显示图层(地图平移放大缩小后会立即显示)。通过对CSS控制产生即时效果,重新渲染失效。 如果要控制图层的显示和隐藏一般用 setVisibility 方法来实现
getDataExtent 计算所有要素集的最大范围。
getDrawedFeatures 获取已经绘制过的要素数组
getFeatureBy 在Vector的要素数组features里面遍历每一个feature,当feature[property]===value时, 返回此feature(并且只返回第一个)。
getFeatureById 通过给定一个id,返回对应的矢量要素。
getFeaturesByAttribute 通过给定一个属性的key值和value值,返回所有匹配的要素数组。
removeAllFeatures 清除当前图层所有的矢量要素。
removeFeatures 从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
setOpacity 设置图层的不透明度,取值[0-1]之间。使用方法如下详解:

Properties

animator

{SuperMap.Animator} 动画管理。 用于控制动态图层渲染管理。

featureIdName

{String} 确认是同一实物的字段名称。默认为”FEATUREID”。 例如:用户在数据库中存放了车辆监控的信息,其中以字段”CARNAME”作为确认一辆车的唯一标识, 则此处就需要设置 featureIdName = “CARNAME”

timeName

{String} 确认同一实物的不同时间段的字段名称,默认为”TIME”字段。 例如:用户在数据库中存放了车辆监控的信息,以字段”CARNAME”作为确认一辆车的唯一标识, 其中一辆名称为car1的车在数据库中有很多条数据(每隔一段时间记录一条数据),而使用”CARTIME”来 存放每条数据在获取时的具体时刻,则此处就需要设置 timeName = “CARTIME”

needRecordDrawedFeature

{Boolean} 是否需要记录绘制过的要素,默认为false

smooth

{Boolean} 是否开启平滑播放效果,默认为true。 平滑播放指在前后两个动画状态之间加入渐变的动画帧, 使动画播放的协调,但相应播放的过多,会导致效率降低。

rendererType

{String} 渲染类型,当前支持: 1、基本动画渲染:”AnimatorCanvas” 2、点闪烁、尾巴渲染:”TadpolePoint” 3、线伸缩渲染:”StretchLine” 4、点发射渲染:”RadiatePoint” 默认为 “AnimatorCanvas”

renderer

渲染方式,在初始化 AnimatorVector 时根据 rendererType 属性生成, 这里只会是动画渲染,即 AnimatorCanvas 或它的子类,如果浏览器不支持则为空 {SuperMap.Renderer}

Constants

EVENT_TYPES

{Array(String)} 此类支持的事件类型。

  • drawfeaturestart 每次绘制在当前时间节点内的feature时触发。
  • drawFrame 绘制帧,动画的每一帧都会触发此事件,传回的参数即为当前渲染的要素
  • featurerendered 要素渲染事件,当要素被渲染后发触发,返回一个当前补间动画中真实被渲染的要素,这样可记录运动的轨迹 例如:
//使用下面的方法将图层添加到map
var animatorVector = new SuperMap.Layer.AnimatorVector("animatorVector", {}, {
    //设置速度为每帧播放0.05的数据
    speed:0.05,
    //开始时间为0
    startTime:0,
    //每秒渲染12帧
    frameRate:12,
    //结束时间设置为10
    endTime:10
});
layer.events.on({"drawfeaturestart": drawfeaturestart});


function drawfeaturestart(feature) {

}

Constructor

SuperMap.Layer.AnimatorVector

创建一个矢量动画图层。

//创建一个名为"AnimatorVector"、采用 Canvas渲染方式渲染的矢量动画图层。
var animatorVector = new SuperMap.Layer.AnimatorVector("AnimatorVector");
//设置速度为每次播放半年的数据
animatorVector.animator.setSpeed(0.5);
//设置开始时间为1900年
animatorVector.animator.setStartTime(1900);
//设置结束时间为2000年
animatorVector.animator.setEndTime(2000);

Parameters

name {String} 此图层的图层名。
options {Object} 此类与父类提供的属性。
animatiorOption {Object} 动画Animator提供的属性。这些属性都可以用过animatorVector.animator来设置。

Allowed options properties

featureIdName {String} 确认是同一实物的字段名称。默认为”FEATUREID”。
timeName {String} 确认同一实物的不同时间段的字段名称,默认为”TIME”字段。
smooth {Boolean} 是否开启平滑播放效果,默认为true。

Allowed animatiorOption properties

speed {Number} 播放速度。不能小于0,默认为1(表示每帧渲染的数据之间的间隔为1),设置越大播放速度越快。
startTime {Number} 播放的起始时间,必须为数字,且小于等于endTime。如果不设置,初始化时为0,建议设置。
endTime {Number} 播放的结束时间,必须为数字,且大于等于startTime。如果不设置,初始化时以当前时间进行设置,建议设置。
repeat {Boolean} 是否重复循环播放。默认为true。
reverse {Boolean} 是否反向播放。默认为false。
frameRate {Number} 帧率,默认为60,即每秒播放60帧动画。由于浏览器每秒渲染60帧是固定的,所以我们只能设置每秒播放的帧数为60、30、20、15、12、10、6、5、4、3、2、1 中的一个

Returns

{SuperMap.Layer.AnimatorVector} 新的矢量动画图层。

Functions

addFeatures

addFeatures: function( features,
options )

给这个矢量动画图层添加features。

animatorVector.addFeatures([feature1,feature2,feature3...]);

Parameters

features {Array(SuperMap.Feature.Vector)}需要添加的要素数组。(也可以是单个feature)

removeFeatures

removeFeatures: function( features )

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

Parameters

features {Array(SuperMap.Feature.Vector)} 要删除feature的数组。

removeAllFeatures

removeAllFeatures: function()

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

getFeatureBy

getFeatureBy: function( property,
value )

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

Parameters

property {String} feature的某个属性名称。
value {String} property所对应的值。

Returns

{SuperMap.Feature.Vector} 第一个匹配属性和值的矢量要素。

getFeatureById

getFeatureById: function( featureId )

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

Parameters

featureId {String} 矢量要素的属性id。

Returns

{SuperMap.Feature.Vector} 对应id的feature,如果不存在则返回null。

getFeaturesByAttribute

getFeaturesByAttribute: function( attrName,
attrValue )

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

Parameters

attrName {String}属性的key。
attrValue {Mixed}属性对应的value值。

Returns

Array(SuperMap.Feature.Vector) 一个匹配的feature数组。

destroy

destroy: function()

销毁AnimatorVector图层,释放资源。

setOpacity

setOpacity: function( opacity )

设置图层的不透明度,取值[0-1]之间。使用方法如下详解:

var animatorVector = new SuperMap.Layer.AnimatorVector("Vector Layer");
animatorVector.setOpacity(0.2);

Parameter

opacity {Float} 图层的不透明度,取值范围:[0-1]。

display

display: function( display )

临时隐藏或者显示图层(地图平移放大缩小后会立即显示)。通过对CSS控制产生即时效果,重新渲染失效。 如果要控制图层的显示和隐藏一般用 setVisibility 方法来实现

Parameters

display {Boolean}true代表不隐藏,false代表隐藏。
animatorVector.display(true/false);

getDrawedFeatures

getDrawedFeatures:function()

获取已经绘制过的要素数组

Return

{Array(SuperMap.Feature.Vector)} 要素数组

getDataExtent

getDataExtent: function ()

计算所有要素集的最大范围。

Returns

{SuperMap.Bounds} 如果没有feature则返回null,否则返回 所有feature的geometry的最大范围。

动画管理类。
这是所有渲染类的基类.
addFeatures: function( features,
options )
给这个矢量动画图层添加features。
removeFeatures: function( features )
从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
removeAllFeatures: function()
清除当前图层所有的矢量要素。
getFeatureBy: function( property,
value )
在Vector的要素数组features里面遍历每一个feature,当feature[property]===value时, 返回此feature(并且只返回第一个)。
getFeatureById: function( featureId )
通过给定一个id,返回对应的矢量要素。
getFeaturesByAttribute: function( attrName,
attrValue )
通过给定一个属性的key值和value值,返回所有匹配的要素数组。
destroy: function()
销毁AnimatorVector图层,释放资源。
setOpacity: function( opacity )
设置图层的不透明度,取值[0-1]之间。使用方法如下详解:
display: function( display )
临时隐藏或者显示图层(地图平移放大缩小后会立即显示)。通过对CSS控制产生即时效果,重新渲染失效。 如果要控制图层的显示和隐藏一般用 setVisibility 方法来实现
getDrawedFeatures:function()
获取已经绘制过的要素数组
getDataExtent: function ()
计算所有要素集的最大范围。
图层类。
创建一个矢量动画图层。
矢量要素类。该类具有 Geometry 属性存放几何信息, attributes 属性存放非几何信息,另外还包含了 style 属性,用来定义矢量要素的样式, 其中,默认的样式在 SuperMap.Feature.Vector.style 类中定义,如果没有特别的指定将使用默认的样式,
表示边界类实例。使用bounds之前需要设置left,bottom, right, top四个属性,这些属性的初始值为null。
Close