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-失败 |