WEB开发网
开发学院软件开发VC VC、OpenGL、ArcGIS Engine开发的二维三维结合的G... 阅读

VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统

 2009-01-16 19:39:17 来源:WEB开发网   
核心提示: 二维GIS与三维GIS结合应用,即克服了二维GIS的抽象多义性,VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统(10),又避免了三维场景漫游的方向迷失感,本研究充分发挥了两者的优势,还有体积、剖面图、三维二维加载shapefile等功能,此处就不再一一赘述,通

二维GIS与三维GIS结合应用,即克服了二维GIS的抽象多义性,又避免了三维场景漫游的方向迷失感。本研究充分发挥了两者的优势,通过二维GIS与三维GIS的互动实现GIS功能,而不局限于用单一的方式来实现,这样即增强了系统的灵活性,又使问题简单化。

4 功能介绍

经过以上两步,二维与三维互动的准备工作已经完成,二维与三维互动的根本思想即是通过二维与三维的互通信,使得二维与三维互相关联,形成一个有机的整体。实现了二维与三维的互动的功能。其中坐标查询是最为关键的功能,是实现其他功能的基础与前提。下面详细说明这些功能实现的主要思想。

4.1、坐标查询。二维中只具有 坐标,三维中具有 坐标,因此欲得到二维中鼠标点击位置的三维坐标,必须将二维中的 传入三维中,经过改进算法的计算即可;而三维中坐标与二维中对应只需将三维中的 坐标传入二维中。这样就实现了二维与三维互动的坐标查询功能,如下图所示,经验证获得的坐标正确,且实现了二维与三维的坐标对应。

VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统4.2、场景定位。在二维中想了解某个位置的详细情况时,可以直接将二维坐标传入三维中,计算出三维坐标后,在进行局部放大到相应位置的三维视图。如果想获得二维中某条线路或某个区域的具体信息,可以将该线路或区域传入三维中绘制在地形纹理上进行仔细观察,其中区域绘制有透明和非透明两种,透明采用遍历活性边表的扫描线算法进行填充,非透明采用GDI的FillRgn函数进行填充;而三维中漫游时,如果迷失方向,则可以将三维坐标传入二维中进行定位标识,如下图所示,二维中的任意位置、线路及区域均可在三维中作相应的绘制,均具备有地形相符的起伏;而三维中漫游时亦可随时定位到二维中。

VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统

4.3、距离量算。如果在三维GIS中测量曲面距离,必须与网格线进行多次求交,得到相应的交点再计算,这样势必大大增加系统负担,而二维GIS中恰好可以应用IPointCollection接口直接获得与网格线的交点集合,但二维GIS中的距离是投影距离,而曲面距离中每一段距离是空间距离,所以,如果是三维中两点的曲面距离,首先需将起终点传入二维GIS中,获得与网格线的交点集合再传回三维GIS中进行计算即可;而如果是二维中两点间的曲面距离,即可首先得到交点(x,y)坐标集合,然后传入三维中,获得网格点集合的(x,y,z)坐标,再进行计算即可。下图即为按照该方法得到的投影、直线、曲面三种距离。

VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统

还有体积、剖面图、三维二维加载shapefile等功能,此处就不再一一赘述。完结啦,^_^

上一页  5 6 7 8 9 10 

Tags:VC OpenGL ArcGIS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接