3.1 SDKCtrl


SDKCtrl控件是三维场景主窗口控件,负责三维场景的展示、窗口交互以及和前端消息的通信。其中与前端消息通信包含两个部分:接口和回调事件。

SDKCtrl提供了获取地图组件(MapManagerCOM)对象工具类组件(ToolsCOM)组件对象授权获取SDK版本等接口给前端进行调用。

回调事件是SDK主动向前端发送消息的接口。通过回调事件可以将SDK的场景交互事件、场景响应事件主动推送给前端客户。用户可以接收场景中的鼠标与键盘操作、图层对象更新、响应器操作、更新对象操作等事件。

接口说明:

序号 接口名称 说明
1 GetIMapMgrPtr 获取MapMgr组件接口对象
2 GetSDKPath 获取SDK注册表中的注册路径
3 GetIToolsCOMPtr 获取工具类组件接口对象
4 SetFullScreenState 设置全屏
5 GetCurrentVer 获取当前SDK版本号
6 RefreshCtrl 强制刷新SDK进程
7 InitLic 授权接口
8 CloseCtrl 强制关闭SDK控件

回调事件:

序号 事件名称 说明
1 FireOnLButtonDown 鼠标左键回调事件
2 FireOnLButtonUp 鼠标左键抬起事件
3 FireOnLButtonDblClk 鼠标左键双击事件
4 FireOnMButtonDown 鼠标中键按下事件
5 FireOnMButtonUp 鼠标中键抬起事件
6 FireOnMButtonDblClk 鼠标中键双击事件
7 FireOnRButtonDown 鼠标右键按下事件
8 FireOnRButtonUp 鼠标右键抬起事件
9 FireOnRButtonDblClk 鼠标右键双击事件
10 FireMouseHover 鼠标悬停事件
11 FireOnMouseWheel 鼠标滚轮滚动事件
12 FireOnKeyDown 键盘按键按下事件
13 FireOnKeyUp 键盘按键抬起事件
14 FireOnLayerNotify 图层更新消息事件
15 FireOnResponserNotify 响应器事件
16 FireOnOperationNotify 更新操作事件
17 FireOnDeserializeNotify 打开工程完成事件
18 FireOnFullScreenState 方法,全屏回调事件
19 FireOnMouseMove 鼠标移动事件
20 FireOnToolsNotify 工具类回调事件
21 FireOnLicState 授权通过事件

3.1.1 接口说明

1.GetIMapMgrPtr

说明:

获取MapMgr组件接口对象。MapMgr是三维地图组建对象,负责绝大部分对象的创建及管理工作。调用方式及功能参照MapManagerCOM组件接口。

语法:

Javascript调用

GetIMapMgrPtr()

C++调用

HRESULT GetIMapMgrPtr([out,retval] IUnknown** pMapMgrPtr)

C#调用

IMapMgr GetIMapMgrPtr()

返回值: pMapMgrPtr

pMapMgrPtr表示MapMgr地图对象。

2.GetSDKPath

说明:

获取SDK的注册路径。注册路径以字符串的形式进行提供。SDK在安装注册时,会将安装目录写到注册表中。通过该接口可以获取SDK的安装目录的绝对路径。

语法:

Javascript调用

GetSDKPath()

C++调用

HRESULT GetSDKPath([out,retval] BSTR* path)

C#调用

string GetSDKPath()

返回值: path

path表示SDK注册路径。

3.GetIToolsCOMPtr

说明:

获取工具类组件接口对象。

语法:

Javascript调用

GetIToolsCOMPtr()

C++调用

HRESULT GetIToolsCOMPtr([out,retval] IUnknown** pToolsCOMPtr)

C#调用

IToolsManager GetIToolsCOMPtr()

返回值: pToolsCOMPtr

pToolsCOMPtr表示工具类组件接口对象。

4.SetFullScreenState

说明:

设置全屏。

语法:

Javascript调用

SetFullScreenState(state)

C++调用

HRESULT SetFullScreenState([in] VARIANT_BOOL state)

C#调用

void SetFullScreenState(bool state)

参数:

参数名 参数类型 说明
state bool 设置是否全屏

5.GetCurrentVer

说明:

获取当前SDK版本号。

语法:

Javascript调用

GetCurrentVer()

C++调用

HRESULT GetCurrentVer([out,retval] BSTR* sdkVer)

C#调用

string GetCurrentVer()

返回值: sdkVer

sdkVer表示SDK版本号。

6.RefreshCtrl

说明:

强制刷新SDK进程(只针对进程化方法创建的SDK)。

语法:

Javascript调用

RefreshCtrl()

C++调用

HRESULT RefreshCtrl([out,retval] VARIANT_BOOL* state)

C#调用

bool RefreshCtrl()

返回值: state

state表示是否刷新成功。true-成功;false-失败。

7.InitLic

说明:

授权接口。

语法:

Javascript调用

InitLic(info)

C++调用

HRESULT InitLic([in] BSTR info, [out,retval] VARIANT_BOOL* state)

C#调用

bool InitLic(string info)

参数:

参数名 参数类型 说明
info string 服务授权信息,格式为"IP@端口@"

返回值: state

state表示是否授权成功。true-成功;false-失败。

8.CloseCtrl

说明:

强制关闭SDK控件。

语法:

Javascript调用

CloseCtrl()

C++调用

HRESULT CloseCtrl([out,retval] VARIANT_BOOL* state)

C#调用

bool CloseCtrl()

返回值: state

state表示是否关闭成功。true-成功;false-失败。

3.1.2 回调事件

前端需要接收SDK的回调事件时,需要先注册处理回调事件的方法,具体注册方法参考回调事件添加与删除

1.FireOnLButtonDown

说明:

鼠标左键按下事件。

语法:

Javascript调用

FireOnLButtonDown(xPos,yPos)

C++调用

HRESULT FireOnLButtonDown([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnLButtonDown(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

2.FireOnLButtonUp

说明:

鼠标左键抬起事件。

语法:

Javascript调用

FireOnLButtonUp(xPos,yPos)

C++调用

HRESULT FireOnLButtonUp([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnLButtonUp(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

3.FireOnLButtonDblClk

说明:

鼠标左键双击事件。

语法:

Javascript调用

FireOnLButtonDblClk(xPos,yPos)

C++调用

HRESULT FireOnLButtonDblClk([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnLButtonDblClk(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

4.FireOnMButtonDown

说明:

鼠标中键按下事件。

语法:

Javascript调用

FireOnMButtonDown(xPos,yPos)

C++调用

HRESULT FireOnMButtonDown([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnMButtonDown(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

5.FireOnMButtonUp

说明:

鼠标中键抬起事件。

语法:

Javascript调用

FireOnMButtonUp(xPos,yPos)

C++调用

HRESULT FireOnMButtonUp([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnMButtonUp(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

6.FireOnMButtonDblClk

说明:

鼠标中键双击事件。

语法:

Javascript调用

FireOnMButtonDblClk(xPos,yPos)

C++调用

HRESULT FireOnMButtonDblClk([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnMButtonDblClk(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

7.FireOnRButtonDown

说明:

鼠标右键按下事件。

语法:

Javascript调用

FireOnRButtonDown(xPos,yPos)

C++调用

HRESULT FireOnRButtonDown([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnRButtonDown(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

8.FireOnRButtonUp

说明:

鼠标右键抬起事件。

语法:

Javascript调用

FireOnRButtonUp(xPos,yPos)

C++调用

HRESULT FireOnRButtonUp([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnRButtonUp(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

9.FireOnRButtonDblClk

说明:

鼠标右键双击事件。

语法:

Javascript调用

FireOnRButtonDblClk(xPos,yPos)

C++调用

HRESULT FireOnRButtonDblClk([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnRButtonDblClk(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

10.FireMouseHover

说明:

鼠标悬停事件。

语法:

Javascript调用

FireMouseHover(xPos,yPos)

C++调用

HRESULT FireMouseHover([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireMouseHover(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

11.FireOnMouseWheel

说明:

鼠标滚轮滚动事件。

语法:

Javascript调用

FireOnMouseWheel(xPos,yPos)

C++调用

HRESULT FireOnMouseWheel([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnMouseWheel(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

12.FireOnKeyDown

说明:

键盘按键按下事件。

语法:

Javascript调用

FireOnKeyDown(nChar)

C++调用

HRESULT FireOnKeyDown([in] LONG nChar)

C#调用

void FireOnKeyDown(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
nChar long 获取按下的键盘按键编号

13.FireOnKeyUp

说明:

键盘按键抬起事件。

语法:

Javascript调用

FireOnKeyUp(nChar)

C++调用

HRESULT FireOnKeyUp([in] LONG nChar)

C#调用

void FireOnKeyUp(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
nChar long 获取抬起的键盘按键编号

14.FireOnLayerNotify

说明:

图层更新消息事件。

语法:

Javascript调用

FireOnLayerNotify(inInfo,layerType)

C++调用

HRESULT FireOnLayerNotify([in] BSTR inInfo, [in] INT layerType)

C#调用

void FireOnLayerNotify(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
inInfo string 窗口+图层Id信息
layerType int 图层状态

**注:inInfo的格式为MapviewId:m|LayerId:n。其中m代表窗口Id,n代表图层Id。

15.FireOnResponserNotify

说明:

响应器事件。

语法:

Javascript调用

FireOnResponserNotify(respType,notifyType)

C++调用

HRESULT FireOnResponserNotify([in] BSTR respType, [in] INT notifyType)

C#调用

void FireOnResponserNotify(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
respType string 窗口Id+响应器类型
notifyType int 执行状态,一般情况下0为正常,其他为异常

**注:respType的格式为窗口Id+响应器类型,中间用|隔开。如1|PickModelResponser代表窗口1中的模型拾取响应器。

16.FireOnOperationNotify

说明:

更新操作事件。

语法:

Javascript调用

FireOnOperationNotify(type,result)

C++调用

HRESULT FireOnOperationNotify([in] INT type, [in] INT result)

C#调用

void FireOnOperationNotify(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
type int 更新操作id
notifyType int 更新操作状态

17.FireOnDeserializeNotify

说明:

打开工程完成事件。

语法:

Javascript调用

FireOnDeserializeNotify(state)

C++调用

HRESULT FireOnDeserializeNotify([in] VARIANT_BOOL state)

C#调用

void FireOnDeserializeNotify(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
state bool 是否成功

18.FireOnFullScreenState

说明:

全屏回调事件。

语法:

Javascript调用

FireOnFullScreenState(state)

C++调用

HRESULT FireOnFullScreenState([in] VARIANT_BOOL state)

C#调用

void FireOnFullScreenState(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
state bool 执行是否成功

19.FireOnMouseMove

说明:

鼠标移动事件。

语法:

Javascript调用

FireOnMouseMove(xPos,yPos)

C++调用

HRESULT FireOnMouseMove([in] SHORT xPos, [in] SHORT yPos)

C#调用

void FireOnMouseMove(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
xPos shot 屏幕坐标X轴坐标
yPos shot 屏幕坐标Y轴坐标

20.FireOnToolsNotify

说明:

工具类回调事件。

语法:

Javascript调用

FireOnToolsNotify(ToolsID,NotifyType)

C++调用

HRESULT FireOnToolsNotify([in] INT ToolsID, [in] INT NotifyType)

C#调用

void FireOnToolsNotify(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
ToolsID INT 工具对象ID
NotifyType INT 工具对象状态

21.FireOnLicState

说明:

授权状态事件。

语法:

Javascript调用

FireOnLicState(state)

C++调用

HRESULT FireOnLicState([in] VARIANT_BOOL state)

C#调用

void FireOnLicState(object sender,AxSDKCtrlLib.IVPSDKCtrlEvents_FireOnResponserNotifyEvent e)

回调返回的参数:

参数名 参数类型 说明
state bool 授权状态。true-成功;false-失败

results matching ""

    No results matching ""