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
url String null optional

跟随模型路径。

accelerator Number 0.0 optional

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

apiKey String null optional

高德web服务api的用户key值,如果配置了该值,则必须配置“resPos”参数。

callback NNCallback | String "none" optional

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

cameraLiftUp Number 0.0 optional

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

callbackPercentage Number 0.01 optional

触发区间,区间为0—1。

cornerSpeedScale Number 1.0 optional

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

destGeoPos Number null optional

路径播放观察目标点位,设置此参数后,路径播放会始终朝向此位置。

editObject EnumPathEditObj EnumPathEditObj.POINT optional

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

editType EnumPathEditType EnumPathEditType.NONE optional

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

gdUrl String "https://restapi.amap.com/v3/direction/walking" optional

高德路径规划服务地址,需要具体到人行、车行除参数外的具体地址, 如果配置了该值,优先使用配置地址,没有配置走默认地址,默认为人行接口

iconSymbol IconSymbol null optional

图标符号。

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

差值线颜色。

interpLineStipple Number 500 optional

差值线显示样式。

interpLineWidth Number 1.0 optional

差值线宽度。

isFollow Boolean true optional

场景相机是否跟随移动。

isJoinPick Boolean true optional

是否可以被拾取。

isNorthBase Boolean false optional

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

isOnGround Boolean false optional

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

isPercentage Boolean false optional

是否以百分比进行播放。

isPlayAsKeyPoint Boolean false optional

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

isSwerveControl Boolean false optional

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

isVisible Boolean true optional

路径线可见状态。

keyPointArray Array.<(PositionObj|String)> null optional

路径线上的关键点数组。

keyPointCapacity Number -1 optional

关键点容量。

keyPointIndex Number 0 optional

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

keyPointLiftUp Number 0.0 optional

关键点的抬高高度,可用于创建时的整体抬高,以及单个关键点的单独抬高。

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

路径线颜色。

lineStipple Number -1 optional

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

lineWidth Number 1.0 optional

路径线宽度。

modelLiftUp Number 0.0 optional

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

modelRotate Vector3Obj new Vector3Obj(0, 0, 0) optional

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

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

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

naviSrcPos PositionObj null optional

导航起始点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。

naviDestPos PositionObj null optional

导航目标点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。

naviUrl String null optional

导航信息url路径。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。

operation EnumPathOperation null optional

路径关键点更新类型。

pickColor ColorObj optional

拾取高亮颜色。

playerMode EnumPathPlayMode EnumPathPlayMode.ONEWAY optional

路径漫游的播放模式。

playStatus EnumPathPlayStatus EnumPathPlayStatus.STOP optional

路径漫游的播放状态。

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

关键点颜色。

pointSize Number 5.0 optional

关键点大小。

popSize Number 0 optional

剔除关键点个数。

progress Number null optional

播放进度,范围从0到终点的索引值,进度可以为小数,如1.23表示从关键点索引为1和2之间的23%位置开始播放。

radius Number 0.5 optional

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

resPos Array null optional

路径规划的途经点数组,数组中不少于两个坐标点,且经纬度小数点不超过6位。必须同时配置“apiKey”参数。

routingLift Number 20 optional

路径规划点的抬高。

routingType EnumRoutingType EnumRoutingType.WALK optional

路径规划人行模式或车行模式,默认为人行模式。

schemeData String null optional

动态路径自定义图层信息。

screen CooMap | ScreenObj null optional

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

speed Number 12.5 optional

路径漫游的播放速度。

textLiftUp Number 1.0 optional

文字抬高高度。

textSymbol TextSymbol new TextSymbol() optional

文字符号对象。

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

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

then CBOCallback optional

对象创建完成后触发的回调事件,传出参数为DynamicPathProvider对象本体。

viewObjectPercentage Double 1.0 optional

路径视角转换百分比,范围0-1。

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

Members

accelerator : Number

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

Default Value: 0.0

apiKey : String

获取或者设置高德web服务api的用户key值。

callback : NNCallback|String

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

Default Value: "none"

callbackPercentage : Number

获取或者设置触发区间。

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

eyePos : PositionObj

获取或者设置路径视角观察点插值点。

gdUrl : String

获取或者设置高德web服务地址。

Default Value: "https://restapi.amap.com/v3/direction/walking"

geoPos : PositionObj

获取或者设置路径视角目标点插值点。

iconSymbol : IconSymbol

获取或者设置图标符号。

id

获取动态路径漫游的内部id。

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

isJoinPick : 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|String)>

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

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)

获取或者设置导航目标点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。

Default Value: null

获取或者设置导航起始点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。

Default Value: null

获取或者设置导航信息url路径。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。

Default Value: null

operation : String

获取或者设置操作方式。

Default Value: null

pickColor : ColorObj

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

Default Value: undefined

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

progress : Number

获取或者设置播放进度,范围从0到终点的索引值,进度可以为小数,如1.23表示从关键点索引为1和2之间的23%位置开始播放。

Default Value: null

radius : Number

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

Default Value: 0.5

resPos : Array

获取或者设置路径规划的途经点数组。必须同时配置“apiKey”参数。

routingLift : String

获取或者设置路径规划点的抬高。

Default Value: 20

routingType : EnumRoutingType

获取或者设置路径规划人行模式或车行模式。

Default Value: EnumRoutingType.WALK

schemeData : String

获取或者设置路径图层自定义信息。

Default Value: null

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()

then : CBOCallback

获取或者设置对象创建完成后触发的回调事件,传出参数为DynamicPathProvider对象本体。

Default Value: undefined

url : String

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

Default Value: null

viewObjectMode : Vector3Obj

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

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

viewObjectPercentage : Double

获取或者设置路径视角转换百分比,范围0-1。

Default Value: 1.0

Methods

deserialize(url)DynamicPathProvider

Name Type Description
url String

反序列化文件保存路径。

Returns:

动态路径对象。

destroy()

从场景中销毁自身。

Returns:

null 空值。

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

getResult(name, reCallback)String

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

Name Type Description
name EnumPathResult

查询参数。

reCallback CBCallback optional

可传递的回调函数,返回查询结果。

Returns:

查询结果。

Example:
// 获取分析结果
var result = dynamicPathProvider.getResult(CooSDK.EnumPathResult.INDEX);
console.log(result);

serialize(url)

Name Type Description
url String

序列化文件保存路径。

setViewPoint(keyPointIndex, geoPos, eyePos)

从场景中设置关键点以指定视角进行播放.若该方法只配置keyPointIndex参数,则设置为当前三维场景视角

Name Type Description
keyPointIndex Number

指定视角对应的关键点序号,最后一个点设置无效

geoPos Vector3Obj optional

路径视角目标插值点,需和eyePos同时使用。

eyePos Vector3Obj optional

路径视角观察插值点,需和geoPos同时使用。

Example:
// 
dynamicPathProvider = dynamicPathProvider.setViewPoint(0,geoPos,eyePos)

update(props)

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

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

Name Type Description
props Object optional

包含如下属性的Object:

Name Type Description
url String optional

跟随模型路径。

apiKey String optional

高德web服务api的用户key值,如果配置了该值,则必须配置“resPos”,“routingType”参数。

accelerator Number optional

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

callback NNCallback | String optional

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

cameraLiftUp Number optional

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

callbackPercentage Number optional

触发区间0-1.

cornerSpeedScale Number optional

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

destGeoPos Number optional

路径播放观察目标点位,设置此参数后,路径播放会始终朝向此位置。

editObject EnumPathEditObj optional

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

editType EnumPathEditType optional

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

eyePos PositionObj optional

路径视角观察点插值点。

gdUrl String optional

高德路径规划服务地址,需要具体到人行、车行除参数外的具体地址,如果配置了该值,优先使用配置地址,没有配置走默认地址,默认为人行接口

geoPos PositionObj optional

路径视角目标点插值点。

interpLineColor ColorObj optional

差值线颜色。

interpLineStipple Number optional

差值线显示样式。

interpLineWidth Number optional

差值线宽度。

isFollow Boolean optional

场景相机是否跟随移动。

isJoinPick Boolean optional

是否可以被拾取。

isNorthBase Boolean optional

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

isOnGround Boolean optional

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

isPlayAsKeyPoint Boolean optional

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

isSwerveControl Boolean optional

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

isVisible Boolean optional

路径线可见状态。

keyPointArray Array.<(PositionObj|String)> optional

路径线上的关键点数组。

keyPointCapacity Number optional

关键点容量。

keyPointIndex Number optional

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

keyPointLiftUp Number optional

关键点的抬高高度,可用于创建时的整体抬高,以及单个关键点的单独抬高。

lineColor ColorObj optional

路径线颜色。

lineStipple Number optional

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

lineWidth Number optional

路径线宽度。

modelLiftUp Number optional

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

modelRotate Vector3Obj optional

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

modelScale Vector3Obj optional

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

naviSrcPos PositionObj optional

导航起始点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。

naviDestPos PositionObj optional

导航目标点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。

naviUrl String optional

导航信息url路径。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效

operation EnumPathOperation optional

路径关键点更新类型。

pickColor ColorObj optional

拾取高亮颜色。

playerMode EnumPathPlayMode optional

路径漫游的播放模式。

playStatus EnumPathPlayStatus optional

路径漫游的播放状态。

pointColor ColorObj optional

关键点颜色。

pointSize Number optional

关键点大小。

popSize Number optional

剔除关键点个数。

progress Number optional

播放进度,范围从0到终点的索引值,进度可以为小数,如1.23表示从关键点索引为1和2之间的23%位置开始播放。

radius Number optional

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

routingType EnumRoutingType optional

路径规划人行模式或车行模式,默认人行。

schemeData String optional

路径自定义信息。

speed Number optional

路径漫游的播放速度。

textLiftUp Number optional

文字抬高高度。

textSymbol TextSymbol optional

文字符号对象。

viewObjectPercentage Double optional

路径视角转换百分比,范围0-1。

viewObjectMode Vector3Obj optional

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

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