3.5 CoordinateSystemCOM


CoordinateSystemCOM是坐标系统组件,负责三维场景中不同坐标系、不同坐标类型的坐标相互转换。该组件通过坐标转换对象(Transformate)对外提供屏幕坐标,场景世界坐标,经纬度坐标以及不同坐标系之间的坐标转换。

坐标转换对象(Transformate)需要通过MapManagerCOM组件的CreateTransformation()接口创建。

注意: 在坐标转换过程中用到的坐标对象iPosition是通过MapManagerCOM组件的CreatePosition()接口创建的。

1.ScreenPosToWorldPos

说明:

屏幕坐标转经纬度高程坐标。

语法:

Javascript调用

ScreenPosToWorldPos(screenX, screenY)

C++调用

HRESULT ScreenPosToWorldPos([in] INT screenX, [in] INT screenY, [out,retval] IUnknown** iPosition)

C#调用

IPosition ScreenPosToWorldPos(int screenX, int screenY)

参数:

参数名 参数类型 说明
screenX int 屏幕坐标X
screenY int 屏幕坐标Y

返回值: iPosition

iPosition表示坐标对象。

2.ConvertLongLatHeightToScreen

说明:

经纬度高程坐标转屏幕坐标。

语法:

Javascript调用

ConvertLongLatHeightToScreen(sPos)

C++调用

HRESULT ConvertLongLatHeightToScreen([in] IUnknown* sPos, [out,retval] IUnknown** rPos)

C#调用

IPosition ConvertLongLatHeightToScreen(IPosition sPos)

参数:

参数名 参数类型 说明
sPos IPosition 经纬度高程坐标对象

返回值: rPos

rPos表示屏幕坐标对象。

3.ConvertXYZToLongLatHeight

说明:

世界坐标转经纬度高程坐标。

语法:

Javascript调用

ConvertXYZToLongLatHeight(sPos)

C++调用

HRESULT ConvertXYZToLongLatHeight([in] IUnknown* sPos, [out,retval] IUnknown** rPos)

C#调用

IPosition ConvertXYZToLongLatHeight(IPosition sPos)

参数:

参数名 参数类型 说明
sPos IPosition 世界坐标对象

返回值: rPos

rPos表示返回的坐标对象,该对象中保存的是经纬度高程坐标。

4.ConvertLongLatHeightToXYZ

说明:

经纬度高程坐标转世界坐标。

语法:

Javascript调用

ConvertLongLatHeightToXYZ(sPos)

C++调用

HRESULT ConvertLongLatHeightToXYZ([in] IUnknown* sPos, [out,retval] IUnknown** rPos)

C#调用

IPosition ConvertLongLatHeightToXYZ(IPosition sPos)

参数:

参数名 参数类型 说明
sPos IPosition 经纬度高程坐标对象

返回值: rPos

rPos表示返回的坐标对象,该对象中保存的是世界坐标。

5.GetNewPosByTranslate

说明:

获取偏移后的坐标对象。

语法:

Javascript调用

GetNewPosByTranslate(sPos, tX, tY, tZ)

C++调用

HRESULT GetNewPosByTranslate([in] IUnknown* srcPos, [in] DOUBLE tX, [in] DOUBLE tY, [in] DOUBLE tZ, [out,retval] IUnknown** newPos)

C#调用

IPosition GetNewPosByTranslate(IPosition sPos, double tX, double tY, double tZ)

参数:

参数名 参数类型 说明
sPos IPosition 原始经纬度高程坐标对象
tX double X轴偏移量(正东方向)。 单位m
tY double Y轴偏移量(正北方向)。 单位m
tZ double Z轴偏移量(高度)。 单位m

返回值: newPos

newPos表示偏移后的坐标对象。该对象中保存的是经纬度高程坐标。

6.ConvertCoordBySRS

说明:

不同坐标系下的坐标转换。根据原始坐标、原始坐标系和目标坐标系计算目标坐标。

语法:

Javascript调用

ConvertCoordBySRS(srcPos, srcSRS, destSRS)

C++调用

HRESULT ConvertCoordBySRS([in] IUnknown* srcPos, [in] BSTR srcSRS, [in] BSTR destSRS, [out,retval] IUnknown** destPos)

C#调用

IPosition ConvertCoordBySRS(IPosition srcPos, string srcSRS, string destSRS)

参数:

参数名 参数类型 说明
srcPos IPosition 原始坐标对象
srcSRS string 原始坐标系坐标参考
destSRS string 目标坐标系坐标参考

返回值: destSRS

destSRS为目标坐标参考下的坐标对象。

7.JudgePointInFivePoint

说明:

针对四棱锥判断点控件位置关系。

语法:

Javascript调用

JudgePointInFivePoint(sPos, firstPos, secondPos, thirdPos, forthPos, fifthPos)

C++调用

HRESULT JudgePointInFivePoint([in] IUnknown* srcPos, [in] IUnknown* firstPos, [in] IUnknown* secondPos, [in] IUnknown* thirdPos, [in] IUnknown* forthPos, [in] IUnknown* fifthPos, [out,retval] VARIANT_BOOL* state)

C#调用

bool JudgePointInFivePoint(IPosition sPos, IPosition firstPos, IPosition secondPos, IPosition thirdPos, IPosition forthPos, IPosition fifthPos)

参数:

参数名 参数类型 说明
sPos IPosition 计算点位对象
firstPos IPosition 四棱锥顶端顶点坐标对象
secondPos IPosition 四棱锥底面第一个顶点坐标对象
thirdPos IPosition 四棱锥底面第二个顶点坐标对象
forthPos IPosition 四棱锥底面第三个顶点坐标对象
fifthPos IPosition 四棱锥底面第四个顶点坐标对象

返回值: state

state表示坐标点是否在四棱锥内部。

results matching ""

    No results matching ""