将屏幕点对象转换成三维点对象,该三维点对象包含了经纬度和海拔高度信息。

命名空间:  SuperMap.Realspace
程序集:  SuperMap.Realspace (in SuperMap.Realspace)
版本: dll

语法

C#
public Point3D PixelToGlobe(
	Point point
)

参数

point
Type: System.Drawing..::.Point
将被转换的二维点坐标对象。

返回值

转换后的三维点对象。

备注

若屏幕点不在地球范围内则返回的三维点经纬度和高度为Double.NaN 。

示例

以下代码示范了如何将屏幕点对象转换成三维点对象。

假设已有存在地形数据 GlobalTerrain.sct 。

CopyC#
public void TestPixelToGlobe(Scene sceneObject)
{
    //进行三维地图场景的设置
    sceneObject.Atmosphere.IsVisible = true;
    sceneObject.TerrainExaggeration = 3;

    //地形图层到三维场景中
    TerrainLayers terrainLayers = sceneObject.TerrainLayers;
    TerrainLayer terrainLayer = terrainLayers.Add(@"..\..\FrameData\GlobalTerrain\GlobalTerrain.sct", true);
    terrainLayer.IsVisible = true;

    //将屏幕点对象转换成三维点对象
    Point point = new Point(800, 600);
    Point3D point3D = sceneObject.PixelToGlobe(point);
    Console.WriteLine("转换后的三维点对象为:" + point3D.ToString());
    sceneObject.Refresh();
}

请参见