论文部分内容阅读
KML(Keyhole Markup Language)是一种基于XML的地理信息标记语言,其主要作用是为了展示地理信息。它的语法简单灵活可扩充性强,已经成为了一个国际通用的标准规范。目前地理信息系统(GIS)已经成熟地应用到了海洋资源、环境、卫生、交通、农业、航空、公安、城市规划、自然灾害监测、和军事等领域。只要涉及到与地理坐标的相关的应用,都需要地理信息系统提供平台的支持。对于不同的GIS平台来说,保证对不同类型数据的兼容是提高自身通用性的重要工作。本文基于一款有关GIS的开源项目OSG Earth。该项目正在茁长成长中,逐渐地被越来越多的业内开发商注意到。本文主要针对该项目中KML解析模块做了五点改进的工作。此外,本文还实现了一个虚拟地球的三维客户端。该客户端可以从局域网获取影像和高程数据并且显示。首先,本文剖析了开源仿真引擎OSG(OpenSceneGraph)的工作原理,研究了它读写文件的机制,为后文的工作打下基础。然后,梳理了OSG Earth对于数据源的管理方式和加载文件的流程。结合项目实际需求实现了一个从局域网的服务器上获取数据的瓦片数据源插件。再次,本文详细地阐述了KML的语法规范,随后针对开源项目源码包中KML模块具体实现的情况作了五点改进工作。重点介绍了最后两点改进的实施细节。最后,本文开发了一款虚拟地球三维客户端。除了常用功能以外,还实现了对KML文件的创建、加载、编辑、删除、保存等功能。该客户端运行稳定,地球转动流畅,用户体验良好,满足了最初设计的要求。