河南省中纬测绘规划信息工程有限公司
Henan Zhongwei Surveying and Mapping Planning Information Engineering Co., Ltd.
咨询热线
0391-3557279

基于开源的WebGIS开发框架的研究与实现

作者:贾贺祥

本文研究了一整套开源开发框架,在后端使用基于Python语言的Django开发框架、前端使用JavaScript、数据库使用PostgreSQL、采用FastDFS作为文件存储、地图服务发布采用GeoServer、地图前端展示采用OpenLayers。开发框架如图1所示。

图1框架结构

一、开发框架

1.数据层

框架使用PostgreSQL作为数据库存储空间数据和非空间数据,PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统。PostGIS作为PostgreSQL的一个扩展提供空间对象、空间索引、空间操作函数和空间操作符等空间信息服务功能,同时,PostGIS遵循OpenGIS的规范。FastDFS分布式存储系统作为本框架的文件存储,通过一个文件客户端tracker来对多个文件服务端storage进行存储和读取,并实现负载均衡解决大容量的文件存储和高并发访问问题。

2.业务层

业务层是框架的核心,使用Python作为服务端的开发语言,基于Django开发框架,Django是一个开放源代码的Web应用框架,由Python写成,采用了MTV的框架模式。Django具有强大的数据模型、自带强大的后台功能、优雅的网址设计、具有强大而可扩展的模板系统、具有可挂在内存缓存或其它框架实现超级缓存的缓存系统、内置国际化系统方便开发出多种语言的网站等优点。在开发过程中,每一个系统的模块可作为独立的APP供系统调用,每一个APP具有独立的模型(数据存取层)、模板(表现层)、视图(业务逻辑层),很方便的实现了系统的高内聚低耦合。同时、Django框架也可快速高效实现空间数据导入到PostGIS并通过GeoServer自动进行服务发布。

3.表现层

表现层是整个模型的最高层,是构建与浏览器之上的,通过浏览器向用户展示空间数据,获取用户输入和操作信息并交给业务层去处理然后对结果进行展示。该框架使用Django的模板,按照功能的类别划分为不同的模块,每个模块相互独立,模块之间又可以通信交互。在地图展示上,采用OpenLayers,OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问。OpenLayers是一个开源的项目,其设计之意是为互联网客户端提供强大的地图展示功能,包括地图数据显示与相关操作,并具有灵活的扩展机制,支持多种矢量数据格式的渲染,可以聚合多源的地理服务。

二、开发框架实现

利用本框架实现了洛阳市国土调查数据分析与共享服务系统,系统主要功能包括:

1.分析和共享数据中心。将全市国土调查数据进行数据整合,并可加载土地规划、基础测绘等各类基础数据,形成分析和共享数据中心,为相关统计分析和共享服务提供数据基础。

2.数据统计分析。实现对全市国土调查数据与土地规划、基础测绘等各类基础数据的综合统计分析,高效利用海量数据,提高三调成果对管理决策的支撑服务能力。

3.数据共享服务。以三调形成的系列非涉密成果及相关成果目录为数据基础,基于互联网环境,研发数据共享平台,平台运行于政务外网或互联网,使市域范围内各部门形成一个紧密联系的整体,提高资源利用率,避免在信息采集、存储和管理上的重复与浪费。