【GIS开发】MapServer篇
最近在做一个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示例下载:
结束语:GIS是一个很好的领域,特别是现代基于地图的应用越来越多,相信会有很好的前景。以上的例子是在J2EE项目中使用,用Java代码实现的地图显然不够灵活,而为了更好地实现地图数据的加载和交互,还需要一个前端的JS框架配合,这个在以后我将详细介绍。
boer
2015 年 12 月 8 日 下午 4:40
请问 mapserver 能否脱离apache,直接在tomcat上发布
红色黎明
2015 年 12 月 11 日 下午 10:54
不一定能脱离,官方给的环境包支持的是apache,我自己没试过tomcat。其实说白了只要能够支持OGC WMS服务,理论上用任何服务器都可以发布地图。这里apache可以只提供地图服务,使用地图服务的程序倒可以放在其他服务器上运行,调用地图接口即可。
絮雨果农
2016 年 8 月 4 日 下午 3:21
配置地图图层文件,后面呢?怎么感觉少了?
红色黎明_Jia
2016 年 9 月 28 日 下午 11:22
mapserver说实话在java里面表现并不是很好,可以看我的后一篇,里面有详细讲解。