基于postgresql+postGIS+QGIS+MapServer的WebGIS部署

      做一个停车场的项目,使用到了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文件和程序系统参数中一致)

5、设置端口号,强烈建议不要更改


6、设置所在地,直接下一步

7、下一步

8、安装完成(不需要点对勾)

Postgresql安装完成后,会发现pgAdminⅢ这个软件,这是postgresql自带的图形界面的数据库管理工具。

(2)postgis的安装

1、打开postgis-bundle-pg93x64-setup-2.1.1-1.exe,接收协议

2、勾选Creat spatial database,下一步

3、选择安装路径,需要与postgresql在相同目录下

4、建立数据库car_lot,如果更改为其他数据库名字,需要修改map文件和程序系统参数(此处忘记截图)

5、等待安装完成

(3)安装python

1、打开python-2.5.4.msi

2、选择安装路径,强烈建议在此路径下,否则需要修改程序中web.xml以及代理文件中的路径

3、下一步

4、等待安装完成

(4)安装QGIS

1、打开QGIS-OSGeo4W-2.2.0-1-Setup-x86_64.exe

2、下一步

 

3、同意协议

 

4、选择安装位置,可自定义

5、选择需要安装的地理数据库,直接下一步

 

 

 

6、等待安装完成

(5)安装地图服务器ms4w

1、 将ms4w_3.0.6.zip解压至安装路径(建议路径D:)

2、

3、打开cmd,进入上图的路径,执行apache-install.bat,出现下图则说明安装成功

4、修改端口号,打开D:\ms4w\Apache\conf下的httpd.conf,找到

将Listen改为改为其他端口号,请确保端口不冲突,并修改map文件和地图页面

(5)将shp文件导入空间数据库

1、  打开QGIS Desktop 2.2.0.exe

2、选择数据库->SPIT工具->将shp文件导入到postgresql

 

2、  新建连接

 

3、输入基本信息(x为勾选)

4、测试连接是否可用

 

5、添加,选择要插入的shp文件

6、确定,插入数据

(6)数据拷贝

1、  将.map文件和mapSymbol文件夹拷到D盘下(如更改位置需要更改程序设置)

2、 打开map文件,找到

修改数据库连接的密码

有若干的地方需要修改

3、此处配置字体和符号的路径,即mapSymbol的路径

4、此处配置地图服务器路径

(7)其他配置

1、  代理设置,当客户端与浏览器不在同一台电脑,需要通过ip访问时,或者在同一台电脑,但是在不同端口时,都涉及到跨域问题,需要修改此处

打开D:\tomcat\tomcat-7.0.54\webapps\ParkingSpaceManage\WEB-INF\cgi下的proxy.cgi,找到

在allowedHosts下加入地图服务器的地址和端口号。

三、用浏览器访问地图服务

输入网址

http://localhost:8080/cgi-bin/mapserv.exe?MAP=D:/gzpark.map&LAYERS=ALL&MODE=MAP

    地图出来说明部署成功了,以后再介绍用openlayers调用在mapserver发布的WMS(Web Map Service)和WFS(Web Feature Service)服务

转载自:https://mtr-1.oss-cn-beijing.aliyuncs.com/qyblog/2019/04/51784564.jpg

You may also like...