3.7.2 IRoam
IRoam是漫游对象。该对象提供了三维场景的各类漫游模式的切换功能。主要有:地下漫游、室内漫游、自定义滑行、自动旋转、旋转模式漫游等。具体的使用示例可参考各类漫游模式展示。
漫游对象需要通过MapManagerCOM组件的CreateRoam()方法创建。
1.SetUnderGroundRoamMode
说明:
设置地下漫游模式。开启地下漫游后,会先将地形半透明显示,然后进行地下数据的浏览,可以随意穿地进行漫游。
语法:
Javascript调用
SetUnderGroundRoamMode(state, underGroundHeight)
C++调用
HRESULT SetUnderGroundRoamMode([in] VARIANT_BOOL state, [in] DOUBLE underGroundHeight)
C#调用
void SetUnderGroundRoamMode(bool state, double underGroundHeight)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
underGroundHeight | double | 地下网格和地面的高度 |
2.SetInDoorRoamMode
说明:
设置室内漫游模式。室内漫游是指模拟在室内浏览、并且不会出现穿墙效果的漫游模式。具体使用可见室内漫游。
语法:
Javascript调用
SetInDoorRoamMode(state, idStr)
C++调用
HRESULT SetInDoorRoamMode([in] VARIANT_BOOL state, [in] BSTR idStr, [out,retval] VARIANT_BOOL* ret)
C#调用
bool SetInDoorRoamMode(bool state, string idStr)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
idStr | string | 漫游挡板图层ID |
返回值: ret
ret表示是否开启成功。true-成功;false-失败。
3.SetAutoRotateRoamMode
说明:
设置自动旋转漫游模式。自动旋转漫游模式是指在锁定观察点位置的情况下,通过鼠标点击(拖动)围绕观察点进行旋转的漫游效果。
语法:
Javascript调用
SetAutoRotateRoamMode(state)
C++调用
HRESULT SetAutoRotateRoamMode([in] VARIANT_BOOL state)
C#调用
void SetAutoRotateRoamMode(bool state)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
4.SetCustomGlideRoamMode
说明:
设置自定义滑动飞行漫游模式。该接口会锁定场景漫游速度、俯仰角、漫游高度,然后可以通过鼠标/键盘进行场景漫游。
语法:
Javascript调用
SetCustomGlideRoamMode(state, height, speed, pitch)
C++调用
HRESULT SetCustomGlideRoamMode([in] VARIANT_BOOL state, [in] DOUBLE height, [in] DOUBLE speed, [in] DOUBLE pitch)
C#调用
void SetCustomGlideRoamMode(bool state, double height, double speed, double pitch)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
height | double | 漫游高度 |
speed | double | 漫游速度 |
pitch | double | 漫游角度 |
5.SetViewRotateRoamMode
说明:
设置旋转漫游模式。旋转漫游是指在一定时间内,通过改变相机的目标点、观察点、视角等参数,达到模拟场景旋转的效果。
语法:
Javascript调用
SetViewRotateRoamMode(viewType, vecticalAngle, horizontalAngle, flyTime)
C++调用
HRESULT SetViewRotateRoamMode([in] VARIANT_BOOL viewType, [in] DOUBLE vecticalAngle, [in] DOUBLE horizontalAngle, [in] DOUBLE flyTime)
C#调用
void SetViewRotateRoamMode(bool viewType, double vecticalAngle, double horizontalAngle, double flyTime)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
viewType | bool | 是否绕观察点旋转。true-绕观察点旋转;false-绕目标点旋转 |
vecticalAngle | double | 垂直俯仰角。 取值范围-89到89。单位(度) |
horizontalAngle | double | 水平旋转角。 取值范围-180到180.单位(度) |
flyTime | double | 旋转时间 |
6.SetCursorFromFile
说明:
设置鼠标光标文件。鼠标光标文件为.cur类型文件。可以通过该接口替换某种鼠标光标类型的文件。
语法:
Javascript调用
SetCursorFromFile(type, path)
C++调用
HRESULT SetCursorFromFile([in] SHORT type, [in] BSTR path, [out,retval] VARIANT_BOOL* state)
C#调用
bool SetCursorFromFile(short type, string path)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
type | short | 光标类型 |
path | string | cur文件路径 |
光标类型:
光标类型 | 说明 |
---|---|
0 | CURSOR_ARROW 箭头 |
1 | CURSOR_DRAG_NORMAL 普通拖拽 |
2 | CURSOR_DRAG_GRASP 拖拽中 |
3 | CURSOR_ZOOM 放大缩小 |
4 | CURSOR_FORWARD 前进\抬升 |
5 | CURSOR_BACKWARD 后退\下降 |
6 | CURSOR_LEFT 左转 |
7 | CURSOR_RIGHT 右转 |
8 | CURSOR_LEFT_FORWARD 左前转 |
9 | CURSOR_LEFT_BACKWARD 左后转 |
10 | CURSOR_RIGHT_FORWARD 右前转 |
11 | CURSOR_RIGHT_BACKWARD 右后转 |
12 | CURSOR_MEASURE 测量 |
13 | CURSOR_PICK 拾取 |
14 | CURSOR_DRAW 绘制 |
15 | CURSOR_STOP 停止 |
16 | CURSOR_FLY 飞行 |
返回值: state
state表示设置状态。true-成功;false-失败。
7.SetCursorMode
说明:
设置鼠标光标模式。可以通过该接口切换鼠标光标显示类型。如替换成拾取模式光标、绘制模式光标等。
语法:
Javascript调用
SetCursorMode(type)
C++调用
HRESULT SetCursorMode([in] SHORT type)
C#调用
void SetCursorMode(short type)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
type | short | 模式类型 |
模式类型:
模式类型 | 说明 |
---|---|
0 | ROAMMODE_NORMAL 普通漫游模式 |
1 | ROAMMODE_ONGROUND 贴地漫游模式 |
2 | ROAMMODE_UNDERGROUND 地下漫游模式 |
3 | ROAMMODE_INDOOR 室内漫游模式 |
4 | ROAMMODE_AUTOROTATE 自动旋转漫游模式 |
5 | ROAMMODE_CUSTOM 自定义漫游模式 |
6 | ROAMMODE_MEASURE 测量模式 |
7 | ROAMMODE_PICK 拾取模式 |
8 | ROAMMODE_DRAW 绘制模式 |
8.SetIntersectLayer
说明:
设置室内漫游挡板图层Id。
语法:
Javascript调用
SetIntersectLayer(layerid)
C++调用
HRESULT SetIntersectLayer([in] LONG layerid)
C#调用
void SetIntersectLayer(long layerid)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
layerid | long | 挡板图层id |
9.SetAutoGlideRoamMode
说明:
设置自动滑动漫游模式。自动滑动漫游模式是指在通过点击屏幕相对位置,达到拖动场景的效果。
语法:
Javascript调用
SetAutoGlideRoamMode(state)
C++调用
HRESULT SetAutoGlideRoamMode([in] VARIANT_BOOL state)
C#调用
void SetAutoGlideRoamMode(bool state)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
10.SetWalkRoamMode
说明:
设置设置步行漫游模式。自动滑动漫游模式是模拟行人在真实场景中步行的效果。开启步行后可以通过鼠标控制场景漫游。
语法:
Javascript调用
SetWalkRoamMode(state)
C++调用
HRESULT SetWalkRoamMode([in] VARIANT_BOOL state)
C#调用
void SetWalkRoamMode(bool state)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
11.SetDriveRoamMode
说明:
设置设置车行漫游模式。自动滑动漫游模式是模拟汽车在真实场景中行驶的效果。开启车行后可以通过鼠标控制场景漫游。
语法:
Javascript调用
SetDriveRoamMode(state)
C++调用
HRESULT SetDriveRoamMode([in] VARIANT_BOOL state)
C#调用
void SetDriveRoamMode(bool state)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
12.SetFlyRoamMode
说明:
设置设置飞行漫游模式。自动滑动漫游模式是模拟飞机在真实场景中飞行的效果。开启飞行后可以通过鼠标控制场景漫游。
语法:
Javascript调用
SetFlyRoamMode(state)
C++调用
HRESULT SetFlyRoamMode([in] VARIANT_BOOL state)
C#调用
void SetFlyRoamMode(bool state)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
state | bool | 开启状态。true-开启;false-关闭 |
13.SetIntersectTypeAndLayer
说明:
设置漫游相交类型及图层。在进行步行、车行、飞行漫游模拟时,可以设置这三种漫游模式与场景中模型图层的相交模式,具体相交模式可通过type
参数控制,默认与所有模型图层都不相交(只与地形相交)。
语法:
Javascript调用
SetIntersectTypeAndLayer(type, layerIdList)
C++调用
HRESULT SetIntersectTypeAndLayer([in] SHORT type, [in] BSTR layerIdList)
C#调用
void SetIntersectTypeAndLayer(bool type, string layerIdList)
参数:
参数名 | 参数类型 | 说明 |
---|---|---|
type | int | 漫游与模型图层相交模式。0-与所有图层不相交;1-与所有图层相交;2-与列表中的图层相交;3-与列表之外的图层相交。默认0 |
layerIdList | string | 图层Id列表。中间用, 隔开。-1代表所有图层 |