做一个停车场的项目,使用到了WebGIS技术来实现车场平面图展示及车位设备管理,记录下从搭建WebGIS平台到实现效果的过程。要实现WebGIS技术,有各种技术搭配,本项目使用的搭配是:postgresql+PostGIS+QGIS+Mapserver+Openlayers。
一、各技术关系
先来理清一下这几个的关系。Postgresql就是一个数据库,但是它具备地理信息处理扩展,从而可实现对地理信息的存储。PostGIS是postgresql数据库的空间数据扩展模块,提供的空间信息服务功能有:空间对象、空间索引、空间操作函数和空间操作符。PostGIS通过添加地理信息对象,使postgresql数据库能将空间几何数据以数据表的形式进行存储。如图所示,
PostGIS支持点、线、多边形、多点、多线和多多边形等空间数据类型。将停车场中相同对象数据存放在同一个图层(shapefile)中,例如可分为设备图层、车位图层等。不同的图层存储在postgresql中不同的数据表中。
桌面地理信息系统QGIS,将空间数据以PostGIS图层的形式,即ShapeFile导入PostgreSQL。QGIS用来处理Shapefile在PostGIS里的导入导出和编辑。
地图服务器MapServer是一个开源的基于胖服务器端/瘦客户端模式的实时地图发布系统,客户端发送数据请求时,服务器端实时的处理空间数据,并将生成的数据发送给客户端。
MapServer采用配置文件方式管理地图发布,配置文件被称为Mapfile,后缀名为map。
MapFile文件将各种地图要素组织成具有层次关系的对象系统。数据来源,使用的数据格式,用户交互和对OGC协议的支持也在MapFile中定义。Mapfile文件可以手动编写,也可以通过QGIS自动生成。
二、WebGIS部署
你需要用到以下安装包:
1、postgresql数据库:postgresql-9.3.4-1-windows-x64.exe
2、postGIS空间数据扩展模块:postgis-bundle-pg93x64-setup-2.1.1-1.exe
3、Python:python-2.5.4.msi
4、QGIS桌面地理信息系统:QGIS-OSGeo4W-2.2.0-1-Setup-x86_64.exe
5、MapServer地图服务器:ms4w_3.0.6.zip
接下来一步步介绍安装部署过程。
(1)postgresql数据库安装
1、打开postgresql-9.3.4-1-windows-x64.exe,下一步
2、选择安装位置,可自定义,下一步
3、选择数据存储位置,建议默认值
4、设置密码,用户名默认为postgres(此处密码需要与map文件和程序系统参数中一致)