动态路径漫游,根据指定路径进行场景漫游。
添加路径漫游时,主要是对路径的初始参数进行设定,如跟随模型、播放状态、播放速度、路径线颜色、关键点等。
更新路径漫游时,主要是对路径进行再编辑和控制播放状态、观察视角等。
删除路径漫游时,是取消路径漫游状态和从场景中移除路径漫游。
一般来说,路径漫游的更新包含两个过程:路径编辑过程和路径播放过程。
路径编辑过程
路径编辑过程主要是创建路径的关键点列表,以及对关键点进行添加、更新、删除操作。
路径漫游播放的前提条件是需要有播放路径和播放参数,播放路径是由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:
|
Example:
// 绑定的事件触发函数
function processPath(){
// .........
}
// 创建路径对象。
var provider = new CooSDK.DynamicPathProvider({
editType: CooSDK.EnumPathEditType.ADD,
callback: processPath
});
Demo:
Members
获取或者设置路径漫游的播放时的加速度。
-
Default Value:
0.0
获取或者设置高德web服务api的用户key值。
callback : NNCallback|String
获取或者设置路径漫游过程中回调事件绑定的函数。
-
Default Value:
"none"
获取或者设置触发区间。
获取或者设置相机相对于路径的抬高高度。
-
Default Value:
0.0
获取或者设置在拐弯转角位置时速度比例, 实际速度= cornerSpeedScale * speed。
-
Default Value:
1.0
editObject : EnumPathEditObj
获取或者设置开启场景编辑时的编辑对象。
-
Default Value:
EnumPathEditObj.POINT
editType : EnumPathEditType
获取或者设置开启场景编辑时的编辑类型。
-
Default Value:
EnumPathEditType.NONE
eyePos : PositionObj
获取或者设置路径视角观察点插值点。
获取或者设置高德web服务地址。
-
Default Value:
"https://restapi.amap.com/v3/direction/walking"
geoPos : PositionObj
获取或者设置路径视角目标点插值点。
iconSymbol : IconSymbol
获取或者设置图标符号。
获取动态路径漫游的内部id。
interpLineColor : ColorObj
获取或者设置差值线颜色。
-
Default Value:
new ColorObj(1.0, 1.0, 1.0, 1.0)
获取或者设置差值线显示样式。
-
Default Value:
500
获取或者设置差值线宽度。
-
Default Value:
1.0
获取或者设置场景相机是否跟随移动。
-
Default Value:
true
获取或者设置是否可以被拾取。
-
Default Value:
true
获取或者设置视角是否以正北为起始角度,false则表示以路径运动方向为起始角度。。
-
Default Value:
false
获取或者设置在跟随移动时,是否保证相机视点一直在地面以上。
-
Default Value:
false
获取或者设置是否以关键点参数进行播放。
-
Default Value:
false
获取或者设置在弯道位置是否减速再加速播放,该值需与cornerSpeedScale配合使用。
-
Default Value:
false
获取或者设置路径线显隐状态。
-
Default Value:
true
keyPointArray : Array.<(PositionObj|String)>
获取或者设置路径线上的关键点数组。
-
Default Value:
null
获取或者设置关键点容量大小。
-
Default Value:
-1
获取或者设置需要更新的关键点索引值。
-
Default Value:
0
获取或者设置关键点的抬高高度,可用于创建时的整体抬高,以及单个关键点的单独抬高。
-
Default Value:
0.0
lineColor : ColorObj
获取或者设置路径线颜色。
-
Default Value:
new ColorObj(1.0, 1.0, 0.0, 1)
获取或者设置线显示样式,可控制实线/虚线显示。-1-实线;1~65535-虚线。
-
Default Value:
-1
获取或者设置路径线宽度。
-
Default Value:
1.0
获取或者设置跟随模型相对于关键点的抬高高度。
-
Default Value:
0.0
modelRotate : Vector3Obj
获取或者设置跟随模型在XYZ轴方向的旋转量。
-
Default Value:
new Vector3Obj(0, 0, 0)
modelScale : Vector3Obj
获取或者设置跟随模型在XYZ轴的缩放比例。
-
Default Value:
new Vector3Obj(1, 1, 1)
naviDestPos : PositionObj
获取或者设置导航目标点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。
-
Default Value:
null
naviSrcPos : PositionObj
获取或者设置导航起始点。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。
-
Default Value:
null
获取或者设置导航信息url路径。naviSrcPos,naviDestPos,naviUrl三者均配置时导航才生效。。
-
Default Value:
null
获取或者设置操作方式。
-
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)
获取或者设置关键点大小。
-
Default Value:
5.0
获取或者设置关键点剔除点数。
-
Default Value:
0
获取或者设置播放进度,范围从0到终点的索引值,进度可以为小数,如1.23表示从关键点索引为1和2之间的23%位置开始播放。
-
Default Value:
null
获取或者设置路径拐弯位置平滑处理半径。
-
Default Value:
0.5
获取或者设置路径规划的途经点数组。必须同时配置“apiKey”参数。
获取或者设置路径规划点的抬高。
-
Default Value:
20
routingType : EnumRoutingType
获取或者设置路径规划人行模式或车行模式。
-
Default Value:
EnumRoutingType.WALK
获取或者设置路径图层自定义信息。
-
Default Value:
null
获取或者设置所属窗口,默认为CooMap所拥有的主窗口。
-
Default Value:
null
获取或者设置路径漫游的播放速度。
-
Default Value:
12.5
获取或者设置文字抬高高度。
-
Default Value:
0.0
textSymbol : TextSymbol
获取或者设置文字Symbol。
-
Default Value:
new TextSymbol()
then : CBOCallback
获取或者设置对象创建完成后触发的回调事件,传出参数为DynamicPathProvider对象本体。
-
Default Value:
undefined
获取或者设置跟随模型路径。
-
Default Value:
null
viewObjectMode : Vector3Obj
获取或者设置视角对象,视角对象的格式为"水平方位角, 垂直俯仰角, 视点到关键点距离"。
-
Default Value:
new Vector3Obj(0, -10, 5)
获取或者设置路径视角转换百分比,范围0-1。
-
Default Value:
1.0
Methods
deserialize(url) → DynamicPathProvider
Name | Type | Description |
---|---|---|
url |
String |
反序列化文件保存路径。 |
Returns:
动态路径对象。
从场景中销毁自身。
Returns:
null 空值。
Example:
// 销毁对象
dynamicPathProvider = dynamicPathProvider.destroy();
根据指定参数获取路径结果。
Name | Type | Description |
---|---|---|
name |
EnumPathResult |
查询参数。 |
reCallback |
CBCallback |
optional
可传递的回调函数,返回查询结果。 |
Returns:
查询结果。
Example:
// 获取分析结果
var result = dynamicPathProvider.getResult(CooSDK.EnumPathResult.INDEX);
console.log(result);
Name | Type | Description |
---|---|---|
url |
String |
序列化文件保存路径。 |
从场景中设置关键点以指定视角进行播放.若该方法只配置keyPointIndex参数,则设置为当前三维场景视角
Name | Type | Description |
---|---|---|
keyPointIndex |
Number |
指定视角对应的关键点序号,最后一个点设置无效 |
geoPos |
Vector3Obj |
optional
路径视角目标插值点,需和eyePos同时使用。 |
eyePos |
Vector3Obj |
optional
路径视角观察插值点,需和geoPos同时使用。 |
Example:
//
dynamicPathProvider = dynamicPathProvider.setViewPoint(0,geoPos,eyePos)
更新单个或者多个对象属性,使之立即生效。
一般用于多个属性的同时更新,避免性能开销过大。
Name | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
props |
Object |
optional
包含如下属性的Object:
|
Example:
dynamicPathProvider.update({
lineWidth: 10,
lineColor: new CooSDK.ColorObj(1, 0, 0, 1)
});