论文部分内容阅读
传统的地理信息系统(GIS)主要是二维,随着生产和生活的需要,三维GIS得到了越来越多的关注,并日趋完善。地图符号是表达地图内容的基本工具,它不仅能表示事物的空间位置、形状、性质和数量,而且还可以表示各事物之间的相互关系及区域总体特征。地图符号在二维地图中得到了广泛的应用,也得到了人们的认可和接受。如何将二维矢量地图符号显示在三维GIS中是现在研究的一个方向。三维GIS的数据模型可以分为体模型、面模型和混合模型三大类。体模型数据结构有三维栅格结构、八叉树结构、结构实体几何模型。面模型数据结构有Grid、TIN、边界表示法和参数函数法。混合模型数据结构有TIN-CSG混合构模、TIN-Octree混合构模、Octree-TEN混合构模。完成三维数据模型构建后,需要实现三维数据的可视化,常用的工具是OpenGL、VRML、DirectX和Java 3D。目前在GIS中常用的绘制地图符号的方法有纯函数绘制、组合绘制、循环绘制和折线绘制。本文选择Java和Java 3D作为开发工具,通过解析数字高程模型(DEM)文件得到三维数据的点阵,进一步构建Grid数据结构,再使用Java 3D技术构建三维地形,实现三维场景的可视化。绘制点符号:首先使用定位技术确定地图符号在三维地形中的坐标,然后采用纯函数绘制法显示点状矢量地图符号。绘制线符号:采用折线法,将原来的线段根据三维地形的起伏,生成折线段,然后进行线状矢量地图符号的绘制。绘制面符号:通过多边形和三维地形求交,确定在三维地形上相交的范围,然后搜索出在该范围的点,再构建新的三角面片,从而显示在三维场景中。通过编写程序,解析DEM数据构建三维地形,实现三维地形的可视化。在三维地形中实现了点状、线状和面状矢量地图符号的显示,完成了交互过程中地图符号的缩放功能。