VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统
2009-01-16 19:39:17 来源:WEB开发网核心提示: 经过以上步骤,即可以应用ATL及OpenGL从底层实现本系统三维部分的程序设计,VC、OpenGL、ArcGIS Engine开发的二维三维结合的GIS系统(7),三维OpenGL部分的功能如下图所示,三维部分采用Roam算法实现DEM的三维可视化以及纹理的叠加,该类用来创建左右两个视图;
经过以上步骤,即可以应用ATL及OpenGL从底层实现本系统三维部分的程序设计。三维OpenGL部分的功能如下图所示,三维部分采用Roam算法实现DEM的三维可视化以及纹理的叠加,并实现了在三维场景中的实时漫游和Shapefile叠加到纹理表面,可以清晰的看到Shapefile叠加到纹理表面后的是有起伏的,这是因为Shapefile是绘制在纹理图像上的,避免了低于地形或高于地形的情况,为有关部门的规划管理提供了支持。
下面是一些三维贴图。
1、叠加shapefile的效果图
2、漫游浏览的效果图(不知为何变成黑白色了,晕)
3、Roam算法生成的Dem格网图
三、二维与三维集成及互动1三维ActiveX控件集成到二维部分
欲将ActiveX控件集成到二维部分,首先必须将二维部分分割成左右两个视图,然后将ActiveX控件插入到其中一个视图中,详细实现如下。
1、分割MFC视图(View)。首先建立一个继承自CFormView的视图COpenGL,该视图即是三维ActiveX控件的载体;然后建立一个继承自CSplitterWnd的类CMySplitter,该类用来创建左右两个视图;最后重载CMainFrame的OnCreateClient函数,在该函数中调用CSplitterWnd的CreateStatic函数创建两个视图,并用RUNTIME_CLASS将COpenGL作为其中一个视图显示。
更多精彩
赞助商链接