论文部分内容阅读
随着GIS系统应用范围的日益普及, GIS软件越来越大,越来越复杂,从而导致程序开发周期变长并使得软件难以维护。同时,扩展原有的功能也将面临更大的风险。组件技术是解决以上困难的有效途径之一。一个组件是二进制形式的软件功能模块,它能和来自其他软件商的组件相互协同工作。组件技术的基本思路是在软件设计时,采用面向对象的思想,把软件分成一个个相对独立的组件并分别加以实现,最后再将他们整合成自己所需要的软件。基于ActiveX技术的GIS设计方法是目前获取和管理地理信息系统的有效方法,为用户提供了互操作性GIS的方法以及GIS用户和地理信息数据服务间的高度灵活性。ActiveX是由微软公司推出的一种用于Internet的组件技术,它可以将一个大型的GIS系统分解成相对独立的多个组件,通过组件技术和OLE、空间数据库等实现GIS系统的开发。Oracle Spatial是Oracle公司推出的空间数据库组件,该组件把相关函数和过程集成在一起,可实现快速、高效的存储和分析空间数据。用Oracle Spatial可以在单个数据库实例中实现非结构化、有嵌套关系的空间数据的统一存储和管理。本论文探讨了目前非常热门的GIS技术,包括GIS技术的由来、核心理念、相关工具和应用的框架等,同时结合北京首安公司的实际课题——“工业网络消防监控系统”,讨论了组件式GIS软件和空间数据库在地理信息系统中的应用。首先,本文介绍了GIS组件技术及北京朝夕公司的MapEngine软件的基本功能和MapEngine的空间数据、属性数据的结构特点。由于MapEngine是GIS组件,本身不具备完整的空间数据库,但可以与SQL Server 2000、Oracle或Access等数据库相接合,实现数据绑定,方便GIS系统的开发。然后,本文讨论了基于Oracle Spatial 9i中的空间数据模型,研究了GIS多源数据的存储与管理,分析了矢量数据、栅格数据、元数据、图层、物理存储结构等几个相关概念,探讨了对象——关系模型中矢量和栅格数据存储的关键技术,这些技术对实际GIS项目开发具有指导意义。本文中介绍的系统以Microsoft Visual Studio 2005作为开发平台,使用Oracle9i数据库并利用其提供的Spatial功能部件完成的空间数据库的构建,所开发的基于组件技术的GIS应用系统采用用户显示层、对外应用接口层和数据服务层的三层架构设计。该系统目前已成功应用于北京首安公司的工业消防监控系统中,解决了消防监控系统中的关键技术问题。最后,根据项目中GIS功能组件和空间数据库的实际应用效果,总结了Oracle Spatial应用的成功经验和开发过程中应该注意的主要问题。