Skyline软件开发接口分类.docx
《Skyline软件开发接口分类.docx》由会员分享,可在线阅读,更多相关《Skyline软件开发接口分类.docx(16页珍藏版)》请在冰点文库上搜索。
![Skyline软件开发接口分类.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/82463ebf-de6e-4434-9254-1fce81ea9689/82463ebf-de6e-4434-9254-1fce81ea96891.gif)
Skyline软件开发接口分类
Skyline软件开发接口分类
ITerraExplorer
IPlane
IObjectManager
IInformationTree
ITerrain
IContainer
IRender
ISnapShot
IStartPosition
ITerraExplorerEvents
ICoordSysICoordSys3
ICoordSys接口提供了相关坐标功能,允许定义一种输入坐标系,使TerraExplorer将其转化为当前地形数据库的坐标系,在设置了用户的坐标系以后,从客户端可以得到相应坐标系下的坐标,并转化为地形的坐标系统,这个接口也提供了高级的对话框,充许自定义坐标系统,有以下方法,四个关键值:
GroupKey,SystemKey,DatumKeyandUnitKey,通过这些值定义一个坐标系统,用户会使用不同的坐标系统,必需为每一个客户定义属于自己的坐标系统
TheICoordSys2接口,继承了ICoordSys接口,增加了国际军事格网参考系MilitaryGridReferenceSystem(MGRS)采用ChooseCSDialogEx支持并更新了ChooseCSDialog方法。
注:
这个接口只有在TerraExplorerPro–GISedition可用
如图:
ICoordSys
方法:
GetTerrainCS,SetTerrainCS,SetSourceCS,ChooseCSDialog,GetCSHandle,GetCSHandleFromEPSG,ReleaseCSHandle,Reproject,GetUnitFactor,MoveCoord,MoveCoordEx,GetDistance,GetAimingAngles
ICoordSys2
方法:
ConvertToMGRS,ConvertFromMGRS,ChooseCSDialogEx
ICoordSys3
方法:
GetDistanceEx,GetAimingAnglesEx
GetTerrainCS
这个方法返回地形的坐标系统,每一个地形数据包括了一个坐标系统,这个方法可以帮助得到相关信息,与这种方法相类似的有ITerrain3:
:
GroupKey,ITerrain3:
:
DatumKey等
语法:
GetTerrainCS(
[out]VARIANT*bstrGroupKey,
[out]VARIANT*bstrSystemKey,
[out]VARIANT*bstrDatumKey,
[out]VARIANT*bstrUnitKey,
[out]VARIANT*longEPSG)
参数:
▪ bstrGroupKey–坐标组唯一字符串.
▪ bstrSystemKey–坐标唯一字符串
▪ bstrDatumKey–坐标投影唯一字符串.
▪ bstrUnitKey–坐标单位字符串
▪ longEPSG–保留
返回值:
返回值
意义
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_NOLICENSE
运行地是基础版,没有授权
SetTerrainCS
这个方法用于设置坐标系.通常坐标系源于地形数据(mpt)的坐标.但是有时坐标系与地形数据(MPT)不一致或是有错误,这时将手工定制
在设置了地形数据的坐标系后,每一个坐标值将转化的新的坐标系下,如果是设置源地形坐标系必须采用ICoordSys:
:
SetSourceCS().方法,这一点要区分。
语法:
SetTerrainCS(
[in]BSTRGroupKey,
[in]BSTRSystemKey,
[in]BSTRDatumKey,
[in]BSTRUnitKey,
[in]longEPSG)
Parameters:
▪ bstrGroupKey–坐标组唯一字符串.
▪ bstrSystemKey–坐标唯一字符串
▪ bstrDatumKey–坐标投影唯一字符串.
▪ bstrUnitKey–坐标单位字符串
▪ longEPSG–保留
返回值:
返回值
意义
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_NOLICENSE
运行的是基础版,没有授权
SetSourceCS
同样是设置坐标系,设置后,无论是那一种坐标系将转化为地形数据的坐标系,你能通过ICoordSys:
:
GetTerrainCS()的方法获取地形坐标系,这种方法只能用一次,可用于坐标系的切换
HRESULTSetSourceCS(
[in]BSTRGroupKey,
[in]BSTRSystemKey,
[in]BSTRDatumKey,
[in]BSTRUnitKey,
[in]longEPSG)
参数:
▪ bstrGroupKey–坐标组唯一字符串.
▪ bstrSystemKey–坐标唯一字符串
▪ bstrDatumKey–坐标投影唯一字符串.
▪ bstrUnitKey–坐标单位字符串
▪ longEPSG–保留
返回值:
返回值
意义
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_NOLICENSE
运行的是基础版,没有授权
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
ChooseCSDialog
这个方法打开了一个高级的对话框,通过group,system,datum,units值的设定,允许用户选择,查看,编辑和建立一种坐标系统,如果Chose为True,表示提交了确定按钮,如果chose为FALSE,表示放弃。
语法ChooseCSDialog(
[out]VARIANT*boolChosen,
[in,out]VARIANT*bstrGroupKey,
[in,out]VARIANT*bstrSystemKey,
[in,out]VARIANT*bstrDatumKey,
[in,out]VARIANT*bstrUnitKey,
[in,out]VARIANT*longEPSG,
[in]longPARENT,
[in]BSTRTitle)
参数:
▪ bstrGroupKey–坐标组唯一字符串.
▪ bstrSystemKey–坐标唯一字符串
▪ bstrDatumKey–坐标投影唯一字符串.
▪ bstrUnitKey–坐标单位字符串
▪ longEPSG–保留
▪ PARENT–对父窗体操作,pass0forthedesktop.
▪ Title–对话框的名称.
返回值:
返回值
意思
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
TE_E_NOLICENSE
运行的是基础版,没有授权
GetCSHandle
这个方法取得坐标系统的句柄.你将能通过这个句柄定义参数,ICoordSys:
:
Reproject(),一旦应用,可通过下面的对象来释放ICoordSys:
:
ReleaseCSHandle().
语法:
GetCSHandle(
[in]BSTRGroupKey,
[in]BSTRSystemKey,
[in]BSTRDatumKey,
[in]BSTRUnitKey,
[out]VARIANT*longCSHandle)
参数:
▪ bstrGroupKey–坐标组唯一字符串.
▪ bstrSystemKey–坐标唯一字符串
▪ bstrDatumKey–坐标投影唯一字符串.
▪ bstrUnitKey–坐标单位字符串
▪ longEPSG–保留
返回值:
返回值
意思
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
TE_E_NOLICENSE
运行的是基础版,没有授权
GetCSHandleFromEPSG
不能执行
ReleaseCSHandle
这个方法是用来释放句柄的.如可通过ICoordSys:
:
GetCSHandle().方法来获取句柄。
HRESULTReleaseCSHandle(
[in]longCSHandle)
参数:
▪ CSHandle–对于坐标系的句柄
返回值:
返回值
意思
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
TE_E_NOLICENSE
运行的是基础版,没有授权
Reproject
这个方法可以实现一个坐标系统转化为另一个坐标系
HRESULTReproject(
[in]longFromCSHandle,
[in]longToCSHandle,
[in,out]VARIANT*doubleCoordX,
[in,out]VARIANT*doubleCoordY)
Parameters:
▪ FromCSHandle–给定的坐标系统句柄
▪ ToCSHandle–想要转化的坐标系统句柄
▪ doubleCoordX–Xcoordinate.
▪ doubleCoordY–Ycoordinate.
返回值:
返回值
意思
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必载加载一个MPT,这个方法才能使用
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
TE_E_NOLICENSE
运行的是基础版,没有授权
GetUnitFactor
这个方法对于特定的单位得到了米制的转换因子
相关的句柄可能过这个方法获取ICoordSys:
:
GetCSHandle()
HRESULTGetUnitFactor(
[in]longCSHandle,
[out]VARIANT*doubleToMeter)
参数:
▪ CSHandle–相关单位下坐标系的句柄.
▪ doubleToMeter–返回米制转换因子.
返回值:
返回值
意思
S_OK
成功
E_FAIL
失败
TE_E_COORDSYS_NOT_INIT
重投影错误,请对照KEY是否在geocalc.dat文件中
TE_E_COORDSYS_UNIT_FACTOR
错误地获得单位
MoveCoord
这个方法移动通过定义东西与南北的偏移值来移动二维坐标,X,Y的坐标可由doubleX和doubleY指定,方法调用后,doubleX和doubleY变为新的坐标值,如可以通过上述方法在一个球面数据上定义一个面状坐标系。
语法:
MoveCoord(
[in,out]VARIANT*doubleX,
[in,out]VARIANT*doubleY,
[in]doublemoveWestEast,
[in]doublemoveSouthNorth)
参数:
▪ doubleX–X坐标
▪ doubleY–Y坐标.
▪ moveWestEast–东西偏移值,正值为东,负值为西。
▪ moveSouthNorth–南北偏移值,正值为北,负值为南。
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
MoveCoordEx
用这种方法,通过三维场景中点的前后偏移,左右偏移,上下偏移,用户能定义坐标系中的坐标及方向,
语法:
MoveCoordEx(
[in,out]VARIANT*doubleX,
[in,out]VARIANT*doubleY,
[in,out]VARIANT*doubleElevation,
[in,out]VARIANT*doubleYaw,
[in]doublePitch,
[in]doubleRoll,
[in]doublemoveForward,
[in]doublemoveRight,
[in]doublemoveUp)
Parameters:
▪ doubleX–X坐标
▪ doubleY–Y坐标.
▪ doubleElevation–高程取决于基于地形数据的参考椭球的高程值。
(绝对高度).
▪ doubleYaw–偏转角度
▪ Pitch–倾斜角度
▪ Roll–滚动角度
▪ moveForward–前后偏移值,前为正,后为负。
▪ moveRight–左右偏移值,右为正,左为负
▪moveUp–点的上下偏移值,上为正下为负
▪返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
GetDistance
这个方法返回给出两点站的水平距离
语法:
GetDistance(
[in]doubleX1,
[in]doubleY1,
[in]doubleX2,
[in]doubleY2,
[out,retval]double*Dist)
参数:
▪ X1–第一个点的X坐标
▪ Y1–第一个点的Y坐标
▪ X2–第二个点的X坐标
▪ Y2–第二个点的Y坐标
▪Dist–返回两点间的距离
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
GetAimingAngles
这个方法返回两个特定三维坐标点间的角度,这两个点均是由X,Y坐标及高程组成,通过定义从第一点看第二个点的偏转角及倾斜角,返回doubleYaw和doublePitch
语法:
GetAimingAngles(
[in]doubleX1,
[in]doubleY1,
[in]doubleElevation1,
[in]doubleX2,
[in]doubleY2,
[in]doubleElevation2,
[out]VARIANT*doubleYaw,
[out]VARIANT*doublePitch);
参数:
▪ X1–第一个点的X坐标.
▪ Y1–第一个点的Y坐标.
▪ Elevation1–第一个点绝对高程.
▪ X2–第二个点的X坐标.
▪ Y2–第二个点的Y坐标.
▪ Elevation2–第一个点绝对高程.
▪ doubleYaw–返回从第一个点看第二个点的偏转角
▪doublePitch–返回从第一个点看第二个点的倾斜角
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
ConvertToMGRS
这个方法用于从地形坐标转到军事格网参考系坐标间的坐标转换,如果调用了SETSourceCS()改变用户应用的坐标系统,转换前可通过CoordX和CoordY进行设定,方法调用后bstrMGRS返回的是转换后的一个字符串值。
这个方法仅仅在ICoordSys2中可使用
语法:
ConvertToMGRS(
[in]doubleCoordX,
[in]doubleCoordY,
[out,retval]BSTR*bstrMGRS)
参数:
▪ CoordX–X坐标
▪ CoordY–Y坐标
▪ bstrMGRS–返回MGRS坐标系下一组字符串
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
TE_E_COORDSYS_NOT_INIT
重投影错误
Key值与geocalc.dat文件中的值不匹配
ConvertFromMGRS
这个方法可将军事格网参考系下的坐标值转换为地形坐标系坐标,如果你调用了SETSourceCS()来改变用户的应用坐标系统,这个方法通过指定bstrMGRS值,来返回doubleCoordX和doubleCoordY。
这个方法仅仅在ICoordSys2中可使用
HRESULTConvertFromMGRS(
[in]BSTRbstrMGRS,
[out]VARIANT*doubleCoordX,
[out]VARIANT*doubleCoordY)
参数:
▪ bstrMGRS–MGRS坐标.
▪ doubleCoordX–返回X坐标.
▪ doubleCoordY–返回Y坐标.
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
TE_E_COORDSYS_NOT_INIT
重投影错误
Key值与geocalc.dat文件中的值不匹配
ChooseCSDialogEx
这个方法打开了高级对话框允许用户选择,浏览,编辑,建立一个坐标系,由四个值group,system,datum,andunits组成,当对话框在使用时,如果Chose为True,表示提交了确定按钮,如果chose为FALSE,表示放弃.
这个方法是ChooseCSDialog的扩展。
语法:
ChooseCSDialogEx(
[out]VARIANT*boolChosen,
[in,out]VARIANT*bstrGroupKey,
[in,out]VARIANT*bstrSystemKey,
[in,out]VARIANT*bstrDatumKey,
[in,out]VARIANT*bstrUnitKey,
[in,out]VARIANT*longEPSG,
[in]VARIANTParentWindow,
[in]BSTRTitle)
参数:
▪ boolChosen–如果选择确定返回TRUE,如果选择放弃返回FALSE
▪ bstrGroupKey–坐标系组唯一值.
▪ bstrSystemKey–坐标系唯一坐标系统主键.
▪ bstrDatumKey–坐标系唯一坐标投影主键.
▪ bstrUnitKey–坐标系唯一单位主键
▪ longEPSG–保留不可用
▪ParentWindow–包括以下情况
1.通过以下IHTMLWindow,IHTMLDocument方法指定接口
2.真实的视窗句柄(eitheroftypeVT_I4orVT_I2ofthevariant).如果用户知道真实的视窗句柄,他们能使用原始的ChooseCSDialog()方法
3. Title–对话框的标题
返回值:
Returnvalue
Meaning
S_OK
成功
E_FAIL
失败
TE_E_MPTNOTLOADED
TerraExplorer必须有MPT加载
TE_E_NOLICENSE
正在运行的版本是Basic,缺少lic开发许可
GetDistanceEx
这个方法返回的是带有不同高程值两点间空间距离
必须在ICoordSys3下使用
语法:
GetDistanceEx(
[in]doubleX1,
[in]doubleH1,
[in]doubleY1,
[in]doubleX2,
[in]doubleH2,
[in]doubleY2,
[out,retval]double*Dist)
参数:
▪ X1–第一个点的X坐标.
▪ H1–第一个点的绝地高程.
▪ Y1–第一个点的Y坐标.
▪ X2–第二个点的X坐标
▪ H2–第二个点的绝地高程.
▪ Y2–第二个点的Y坐标.
▪ Dist–返回两点门单位为米的距离值
返回值:
返回值
意思
S_OK
成功
TE_E_INTERNAL
内部错误
GetAimingAnglesEx
这个方法是通过定义两个空间坐标点(X,Y,Z)的值,返回两点间的doubleYaw及doublePitch