DynamicPathProvider

new CooSDK.DynamicPathProvider(props)

动态路径漫游,根据指定路径进行场景漫游。
添加路径漫游时,主要是对路径的初始参数进行设定,如跟随模型、播放状态、播放速度、路径线颜色、关键点等。
更新路径漫游时,主要是对路径进行再编辑和控制播放状态、观察视角等。
删除路径漫游时,是取消路径漫游状态和从场景中移除路径漫游。
一般来说,路径漫游的更新包含两个过程:路径编辑过程和路径播放过程。

路径编辑过程


路径编辑过程主要是创建路径的关键点列表,以及对关键点进行添加、更新、删除操作。
路径漫游播放的前提条件是需要有播放路径和播放参数,播放路径是由N个关键点组成的。路径的编辑过程就是在生成路径关键点以及播放参数。
一般播放路径有3种方式产生:
1.直接传入。 可以在创建路径图层时,通过keyPointArray参数直接传入播放路径(关键点数组)。这是常用的一种方式,也是导入路径漫游的使用方式。
2.手动传入。 可以用更新图层的方式传入一个/一批关键点。传入的同时可设置单个关键点的播放参数。该方法需要更新operation,keyPointIndex, keyPointArray 等参数。
3.场景编辑。 可以开启场景编辑功能,开启后已有的关键点会有编号,在场景中点击可以添加新的关键点等。该方法需要更新editType, editObject 参数。

路径播放过程


路径播放过程是在路径关键点列表确定之后,进行路径的播放。播放时可切换播放状态、改变跟随模式、改变观察位置等。一般主要有以下几种方式切换。
1.切换播放状态。 可通过更新playStatus 参数, 控制路径漫游在播放、暂停和停止3个状态任意切换。
2.切换跟随移动状态。 可通过更新isFollow 参数, 控制场景是跟随移动还是不跟随。通过该方式可以达到第一人称视角观察(跟随)和第三人称视角观察(不跟随)。
3.切换播放类型。 可通过更新isPlayAsKeyPoint 参数, 控制路径漫游的播放类型。 当isPlayAsKeyPoint=true 时,播放类型切换成以关键点参数进行播放,后续无法再进行视角切换和播放速度控制;当isPlayAsKeyPoint=false 时,播放类型切换成以路径参数进行播放,在播放时可以随意更改观察视角和播放速度。
4.切换观察视角。 在播放的过程中,可以切换观察视角,达到左视、右视、前视、后视等多种效果。切换视角的前提是:isPlayAsKeyPoint=false, isFollow=true。
5.控制播放速度。 在以路径参数进行播放的过程中,可以通过更新speed 参数控制播放的速度。

实时路径漫游


实时路径漫游是动态路径漫游的一种模式。它可以在播放的过程中删除关键点列表前端的点以及在列表的后端追加关键点,但不影响路径的播放。
由于是实时路径漫游是属于动态路径漫游中的一种,对于路径创建以及编辑,可以参考动态路径漫游,这里只介绍实时路径漫游特有的一些操作。实时路径漫游主要包括以下几种特有的操作。
1.创建。 这与动态路径漫游的创建大体相同,只是在设置播放模式时,playerMode 必须设为EnumPathPlayMode.ONEWAY_STAY。 即实时播放。
2.改变关键点容量。 通过更新keyPointCapacity参数可设置最大存储关键点数量,默认为-1,代表不限容量。当设定一个容量时,如果关键点数量超出该容量,在播放的过程中,会自动剔除已经播放的关键点。
3.剔除关键点。 在播放的过程中,也可以手动剔除已经播放的关键点。通过更新图层操作将operation参数设为 EnumPathOperation.POP, 然后设置popSize 参数的数量,可以删除已经播放的关键点个数。
4.追加关键点。 可以在关键点末尾进行关键点的追加。通过更新图层操作将operation参数设为 CooSDK.EnumPathOperation.APPEND, 然后在keyPointArray 参数中设置追加的关键点集,即可实现关键点的追加。
实时路径漫游主要用于模拟GPS实时跟踪效果模拟。在播放的过程中,定时接收GPS传递的关键点信息,然后通过追加关键点操作让路径一直延伸。
注意: 如果关键点都已经播放完毕,在进行追加关键点操作之前,路径会暂停等待,直到有新的关键点追加进来,路径才会继续播放。


动态路径漫游效果图
Name Type Description
props Object optional

包含如下属性的Object:

Name Type Default Description
playerMode EnumPathPlayMode EnumPathPlayMode.ONEWAY optional

路径漫游的播放模式。

playStatus EnumPathPlayStatus EnumPathPlayStatus.STOP optional

路径漫游的播放状态。

viewObjectMode Vector3Obj new Vector3Obj(0, -10, 2) optional

视角对象,视角对象的格式为"水平方位角, 垂直俯仰角, 视点到关键点距离"。

speed Number 12.5 optional

路径漫游的播放速度。

accelerator Number 0.0 optional

路径漫游的播放时的加速度。

cornerSpeedScale Number 1.0 optional

在拐弯转角位置时速度比例, 实际速度= cornerSpeedScale * speed。

pointSize Number 5.0 optional

关键点大小。

pointColor ColorObj new ColorObj(1.0, 1.0, 0.0, 1) optional

关键点颜色。

lineWidth Number 1.0 optional

路径线宽度。

lineStipple Number -1 optional

线显示样式,可控制实线/虚线显示。-1-实线;1~65535-虚线。

lineColor ColorObj new ColorObj(1.0, 1.0, 0.0, 1) optional

路径线颜色。

pickColor ColorObj new ColorObj(1.0, 0.0, 0.0, 1) optional

拾取高亮颜色。

radius Number 0.5 optional

路径拐弯位置平滑处理半径。

keyPointArray Array.<PositionObj> null optional

路径线上的关键点数组。

textSymbol TextSymbol new TextSymbol() optional

文字符号对象。

textLiftUp Number 0.0 optional

文字抬高高度。

interpLineWidth Number 1.0 optional

差值线宽度。

interpLineStipple Number 500 optional

差值线显示样式。

interpLineColor ColorObj new ColorObj(1.0, 1.0, 1.0, 1.0) optional

差值线颜色。

keyPointLiftUp Number 0.0 optional

所有关键点的抬高高度。

keyPointIndex Number 0 optional

需要更新的关键点索引值。

keyPointCapacity Number -1 optional

关键点容量。

popSize Number 0 optional

剔除关键点个数。

isPlayAsKeyPoint Boolean false optional

是否以关键点参数进行播放 。

isNorthBase Boolean false optional

视角是否以正北为起始角度,false则表示以路径运动方向为起始角度。

isSwerveControl Boolean false optional

设置在弯道位置是否减速再加速播放, 该值需与cornerSpeedScale配合使用。

isOnGround Boolean false optional

在跟随移动时,是否保证相机视点一直在地面以上。

isFollow Boolean true optional

场景相机是否跟随移动。

url String null optional

跟随模型路径。

modelScale Vector3Obj new Vector3Obj(1, 1, 1) optional

跟随模型在XYZ轴的缩放比例。

modeRotate Vector3Obj new Vector3Obj(0, 0, 0) optional

跟随模型在XYZ轴方向的旋转量。

cameraLiftUp Number 0.0 optional

相机相对于路径的抬高高度。

modelLiftUp Number 0.0 optional

跟随模型相对于关键点的抬高高度。

editObject EnumPathEditObj EnumPathEditObj.POINT optional

开启场景编辑时的编辑对象。

editType EnumPathEditType EnumPathEditType.NONE optional

开启场景编辑时的编辑类型。

operation EnumPathOperation null optional

路径关键点更新类型。

isVisible Boolean true optional

路径线可见状态。

callback NNCallback | String "none" optional

路径漫游过程中回调事件绑定的函数。

screen CooMap | ScreenObj null optional

所属窗口,默认为CooMap所拥有的主窗口。

Example:
// 绑定的事件触发函数
function processPath(){
// .........
}
// 创建路径对象。
var provider = new CooSDK.DynamicPathProvider({
     editType: CooSDK.EnumPathEditType.ADD,
     callback: processPath
});
Demo:

Members

accelerator : Number

获取或者设置路径漫游的播放时的加速度。

Default Value: 0.0

callback : NNCallback|String

获取或者设置路径漫游过程中回调事件绑定的函数。

Default Value: "none"

cameraLiftUp : Number

获取或者设置相机相对于路径的抬高高度。

Default Value: 0.0

cornerSpeedScale : Number

获取或者设置在拐弯转角位置时速度比例, 实际速度= cornerSpeedScale * speed。

Default Value: 1.0

editObject : EnumPathEditObj

获取或者设置开启场景编辑时的编辑对象。

Default Value: EnumPathEditObj.POINT

editType : EnumPathEditType

获取或者设置开启场景编辑时的编辑类型。

Default Value: EnumPathEditType.NONE

interpLineColor : ColorObj

获取或者设置差值线颜色。

Default Value: new ColorObj(1.0, 1.0, 1.0, 1.0)

interpLineStipple : Number

获取或者设置差值线显示样式。

Default Value: 500

interpLineWidth : Number

获取或者设置差值线宽度。

Default Value: 1.0

isFollow : Boolean

获取或者设置场景相机是否跟随移动。

Default Value: true

isNorthBase : Boolean

获取或者设置视角是否以正北为起始角度,false则表示以路径运动方向为起始角度。。

Default Value: false

isOnGround : Boolean

获取或者设置在跟随移动时,是否保证相机视点一直在地面以上。

Default Value: false

isPlayAsKeyPoint : Boolean

获取或者设置是否以关键点参数进行播放。

Default Value: false

isSwerveControl : Boolean

获取或者设置在弯道位置是否减速再加速播放,该值需与cornerSpeedScale配合使用。

Default Value: false

isVisible : Boolean

获取或者设置路径线显隐状态。

Default Value: true

keyPointArray : Array.<PositionObj>

获取或者设置路径线上的关键点数组。

Default Value: null

keyPointCapacity : Number

获取或者设置关键点容量大小。

Default Value: -1

keyPointIndex : Number

获取或者设置需要更新的关键点索引值。

Default Value: 0

keyPointLiftUp : Number

获取或者设置所有关键点的抬高高度。

Default Value: 0.0

lineColor : ColorObj

获取或者设置路径线颜色。

Default Value: new ColorObj(1.0, 1.0, 0.0, 1)

lineStipple : Number

获取或者设置线显示样式,可控制实线/虚线显示。-1-实线;1~65535-虚线。

Default Value: -1

lineWidth : Number

获取或者设置路径线宽度。

Default Value: 1.0

modelLiftUp : Number

获取或者设置跟随模型相对于关键点的抬高高度。

Default Value: 0.0

modelRotate : Vector3Obj

获取或者设置跟随模型在XYZ轴方向的旋转量。

Default Value: new Vector3Obj(0, 0, 0)

modelScale : Vector3Obj

获取或者设置跟随模型在XYZ轴的缩放比例。

Default Value: new Vector3Obj(1, 1, 1)

operation : String

获取或者设置操作方式。

Default Value: null

pickColor : ColorObj

获取或者设置拾取高亮颜色。

Default Value: new ColorObj(1.0, 0.0, 0.0, 1)

playerMode : EnumPathPlayMode

获取或者设置路径漫游的播放模式。

Default Value: EnumPathPlayMode.ONEWAY

playStatus : EnumPathPlayStatus

获取或者设置路径漫游的播放状态。

Default Value: EnumPathPlayStatus.STOP

pointColor : ColorObj

获取或者设置关键点颜色。

Default Value: new ColorObj(1.0, 1.0, 0.0, 1)

pointSize : Number

获取或者设置关键点大小。

Default Value: 5.0

popSize : Number

获取或者设置关键点剔除点数。

Default Value: 0

radius : Number

获取或者设置路径拐弯位置平滑处理半径。

Default Value: 0.5

screen : CooMap|ScreenObj

获取或者设置所属窗口,默认为CooMap所拥有的主窗口。

Default Value: null

speed : Number

获取或者设置路径漫游的播放速度。

Default Value: 12.5

textLiftUp : Number

获取或者设置文字抬高高度。

Default Value: 0.0

textSymbol : TextSymbol

获取或者设置文字Symbol。

Default Value: new TextSymbol()

url : String

获取或者设置跟随模型路径。

Default Value: null

viewObjectMode : Vector3Obj

获取或者设置视角对象,视角对象的格式为"水平方位角, 垂直俯仰角, 视点到关键点距离"。

Default Value: new Vector3Obj(0, -10, 2)

Methods

deserialize(url)DynamicPathProvider

Name Type Description
url String

反序列化文件保存路径。

Returns:

动态路径对象。

destroy()

从场景中销毁自身。

Returns:

null 空值。

Example:
// 销毁对象
dynamicPathProvider = dynamicPathProvider.destroy();

getResult(name, reCallback)String|FDTObject

根据指定参数获取路径结果。

Name Type Description
name EnumPathResult

查询参数。

reCallback CBCallback optional

非IE时可传入:需传递的回调函数,返回查询结果。

Returns:

查询结果。IE:String类型;非IE:FDTObject对象。

Examples:
// IE浏览器写法:
// 获取分析结果
var result = drawAnalysis.getResult(CooSDK.EnumPathResult.TYPE);
console.log(result);
// 非IE浏览器写法:
// 获取分析结果
drawAnalysis.getResult(CooSDK.EnumPathResult.TYPE, function(result){
     console.log(result);
});

serialize(url)

Name Type Description
url String

序列化文件保存路径。

update(props)

更新单个或者多个对象属性,使之立即生效。

一般用于多个属性的同时更新,避免性能开销过大。

Name Type Description
props Object optional

包含如下属性的Object:

Name Type Description
playerMode EnumPathPlayMode optional

路径漫游的播放模式。

playStatus EnumPathPlayStatus optional

路径漫游的播放状态。

viewObjectMode Vector3Obj optional

视角对象,视角对象的格式为"水平方位角, 垂直俯仰角, 视点到关键点距离"。

speed Number optional

路径漫游的播放速度。

accelerator Number optional

路径漫游的播放时的加速度。

cornerSpeedScale Number optional

在拐弯转角位置时速度比例, 实际速度= cornerSpeedScale * speed。

pointSize Number optional

关键点大小。

pointColor ColorObj optional

关键点颜色。

lineWidth Number optional

路径线宽度。

lineStipple Number optional

线显示样式,可控制实线/虚线显示。-1-实线;1~65535-虚线。

lineColor ColorObj optional

路径线颜色。

pickColor ColorObj optional

拾取高亮颜色。

radius Number optional

路径拐弯位置平滑处理半径。

keyPointArray Array.<PositionObj> optional

路径线上的关键点数组。

textSymbol TextSymbol optional

文字符号对象。

textLiftUp Number optional

文字抬高高度。

interpLineWidth Number optional

差值线宽度。

interpLineStipple Number optional

差值线显示样式。

interpLineColor ColorObj optional

差值线颜色。

keyPointLiftUp Number optional

所有关键点的抬高高度。

keyPointIndex Number optional

需要更新的关键点索引值。

keyPointCapacity Number optional

关键点容量。

popSize Number optional

剔除关键点个数。

isPlayAsKeyPoint Boolean optional

是否以关键点参数进行播放 。

isNorthBase Boolean optional

视角是否以正北为起始角度,false则表示以路径运动方向为起始角度。

isSwerveControl Boolean optional

设置在弯道位置是否减速再加速播放, 该值需与cornerSpeedScale配合使用。

isOnGround Boolean optional

在跟随移动时,是否保证相机视点一直在地面以上。

isFollow Boolean optional

场景相机是否跟随移动。

url String optional

跟随模型路径。

modelScale Vector3Obj optional

跟随模型在XYZ轴的缩放比例。

modeRotate Vector3Obj optional

跟随模型在XYZ轴方向的旋转量。

cameraLiftUp Number optional

相机相对于路径的抬高高度。

modelLiftUp Number optional

跟随模型相对于关键点的抬高高度。

editObject EnumPathEditObj optional

开启场景编辑时的编辑对象。

editType EnumPathEditType optional

开启场景编辑时的编辑类型。

operation EnumPathOperation optional

路径关键点更新类型。

isVisible Boolean optional

路径线可见状态。

callback NNCallback | String optional

路径漫游过程中回调事件绑定的函数。

Example:
dynamicPathProvider.update({
     lineWidth: 10,
     lineColor: new CooSDK.ColorObj(1, 0, 0, 1)
});