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

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是绘制在纹理图像上的,避免了低于地形或高于地形的情况,为有关部门的规划管理提供了支持。

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

下面是一些三维贴图。

1、叠加shapefile的效果图

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

2、漫游浏览的效果图(不知为何变成黑白色了,晕)

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

3、Roam算法生成的Dem格网图

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

三、二维与三维集成及互动1三维ActiveX控件集成到二维部分

欲将ActiveX控件集成到二维部分,首先必须将二维部分分割成左右两个视图,然后将ActiveX控件插入到其中一个视图中,详细实现如下。

1、分割MFC视图(View)。首先建立一个继承自CFormView的视图COpenGL,该视图即是三维ActiveX控件的载体;然后建立一个继承自CSplitterWnd的类CMySplitter,该类用来创建左右两个视图;最后重载CMainFrame的OnCreateClient函数,在该函数中调用CSplitterWnd的CreateStatic函数创建两个视图,并用RUNTIME_CLASS将COpenGL作为其中一个视图显示。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:VC OpenGL ArcGIS

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