【GIS开发】MapServer篇

作者: 红色黎明 分类: GIS,学习笔记 发布时间: 2013-01-26 22:58

最近在做一个GIS(地理信息)方面的项目,需要用到国外的一款实时地图发布系统——MapServer。

相信很多做WebGIS的人都知道,MapServer是一个很有名气的开源 WebGIS项目,它是美国明尼苏达大学 (University of Minnesota, 简称 UMN)在二十世纪90 年代利用 C语言开发的,通过Mapscript,可以支持各种解释型语言,例如 C#、java、TCL、PHP等。而在引入各种包的J2EE项目中,它无疑显得很精巧,配置完环境之后只需要在项目中加入Mapscript.jar便可以支持在Java中生成和调用MapServer的地图数据。

下面介绍一下如何搭建MapServer环境(For Java),并且提供J2EE下的MapServer测试例子。

一、官网(http://mapserver.org/)下载ms4w环境包(Windows下的已编译安装包),解压到任意盘符即可。

二、设置环境变量。在系统变量修改或添加以下的变量(我是直接解压到D盘根目录,建议路径不带中文和各种特殊符号空格等):

Path                      D:\ms4w\Apache\cgi-bin;%PATH%

PROJ_LIB              D:\ms4w\proj\nad

CLASSPATH          D:\ms4w\Apache\cgi-bin\mapscript\java\mapscript.jar;%CLASSPATH%

三、关键步骤。

(1)将D:\ms4w\Apache\cgi-bin\mapscript\java的mapscript.dll复制到Tomcat下的bin目录和ms4w目录下的Apache\cgi-bin

(2)在Tomcat的起来脚本里加入-Djava.library.path=D:\ms4w\Apache\cgi-bin,如果用MyEclipse,则在配置的Tomcat上“Optional program arguments”一项填入-Djava.library.path=D:\ms4w\Apache\cgi-bin即可。

四、配置地图图层文件——mapfile文件,如果是新手可网上搜索mapfile可视化编辑工具——MFEditor,新建mapfile文件,进行基础配置,并加入图层文件(.shp),会自动生成mapfile文件,此处不详细阐述。或者可以用QGIS桌面版,使用mapserver导出插件导出配置文件即可。

五、下面提供一个在J2EE下的可以运行的例子。我是基于网上的那个错误的例子进行修改的,测试运行正常。若出现mapscript.dll找不到或者类不能被JVM加载等错误,请确定在java.library.path路径中是否有mapscript.dll。

注意:在win8下由于权限问题可能会出现mapscript.dll加载错误,导致程序不能运行。

MapServer JSP示例下载:

MapServer测试程序(For  J2EE)

结束语:GIS是一个很好的领域,特别是现代基于地图的应用越来越多,相信会有很好的前景。以上的例子是在J2EE项目中使用,用Java代码实现的地图显然不够灵活,而为了更好地实现地图数据的加载和交互,还需要一个前端的JS框架配合,这个在以后我将详细介绍。

4条评论
  • boer

    2015 年 12 月 8 日 下午 4:40

    请问 mapserver 能否脱离apache,直接在tomcat上发布

    1. 红色黎明

      2015 年 12 月 11 日 下午 10:54

      不一定能脱离,官方给的环境包支持的是apache,我自己没试过tomcat。其实说白了只要能够支持OGC WMS服务,理论上用任何服务器都可以发布地图。这里apache可以只提供地图服务,使用地图服务的程序倒可以放在其他服务器上运行,调用地图接口即可。

  • 絮雨果农

    2016 年 8 月 4 日 下午 3:21

    配置地图图层文件,后面呢?怎么感觉少了?

    1. 红色黎明_Jia

      2016 年 9 月 28 日 下午 11:22

      mapserver说实话在java里面表现并不是很好,可以看我的后一篇,里面有详细讲解。

发表评论

电子邮件地址不会被公开。 必填项已用*标注