JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图
超详细!目前最保姆级的MapGuide上手指南!
系列链接:
Java web与web gis学习笔记(一)——Tomcat环境搭建
Java web与web gis学习笔记(二)——百度地图API调用
JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图
JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层
JavaWeb和WebGIS学习笔记(五)——使用OpenLayers显示地图
JavaWeb和WebGIS学习笔记(六)——使用ArcGIS for Server发布地图服务
前言:
MapGuide是美国Autodesk公司生产的WebGIS平台,Autodesk MapGuide是Autodesk公司为满足GIS用户数据发布需要,开发的Internet网络图形数据发布产品。它是世界上第一个通过Internet和Intranet发布实时的、内容丰富而详实的地图和地理数据的交互式解决方案。其主要特点为:利用WWW浏览器交互式操作,真正的矢量地图传输数据库的动态相关。该软件可以帮助用户在Internet和Intranet上开发、管理以及分发GIS和设计应用程序,拓宽了对关键的地理空间和数字设计数据的访问。 ——百度百科
一个朋友告诉我,她看到有人说”MapGuide是世界上最好的WebGIS平台“,正好最近的课程中要求使用MapGuide发布地图,我就想试试这个平台到底有多好。
然而,网上关于MapGuide的安装配置以及MapGuide Maestro发布地图的教程相当少,仅有的一些教程要么错误百出,要么年代久远。官网的Documents似乎也不尽人意。我参考了几篇稍微优秀一点的教程,并结合自己的摸索,记录一下MapGuide入门级发布地图的方法以及我遇到的坑(。)
可供参考的教程有:
MapGuide应用开发系列(一)----MapGuide的开源地图编辑(Authoring Tool)工具Meastro介绍
MapGuide应用开发系列(二)----MapGuide Open Source 2.1 的安装
MapGuide应用开发系列(三)----MapGuide 数据包管理及Maestro亮点功能介绍
MapGuide Open Source v2.2 快速安装学习指南
mapguide 使用MapGuide Open Source2.1 & Maestro快速搭建一个基本的WebGIS
MapGuide open source开发系列教程四: 体系结构(转贴)
实践操作之前先介绍一下MapGuide的框架结构。MapGuide软件由创作器(MapGuide Author),浏览器(MapGuide Viewer),服务器(MapGuide Server),Web服务器(MapGuide Web Extension)四个核心软件部件组成。
这几个部分都不是指具体的软件,而是一种MapGuide体系的一部分。比如,浏览器(Viewer)、服务器(Server)部分、Web服务器(Web Extension)在2.1版本后被集成到一起安装,有商业版MapGuide Enterprise和开源免费的MapGuide Open Source。创作器Author部分有收费的商业软件MapGuide Studio和开源的软件MapGuide Maestro,其中也会集成浏览器(Viewer),方便用户在客户端预览。
● MapGuide Server
用于与空间数据直接交互,并处理MapGuide Web Extension发出的请求,MapGuide Server支持Windows和Linux平台。
● MapGuide Web Extension
也称为Web Server,是网络结构的中间层,用于转发IIS (Internet Information Service) 的请求,并向MapGuide服务器发出相应的请求。MapGuide Web Extension支持IIS和Apache (Windows平台) 或Apache (Windows 和Linux平台),它提供一系列完整的API,可以用这些API进行定制开发。MapGuide Web Extension支持三种语言的开发,分别是PHP、ASP和JSP。
● MapGuide Studio/Maestro (Author)
是用于地图管理的工具,为了用户方便,内部集成了浏览器。用户可以用 MapGuide Studio进行所见即所得的便捷管理,MapGuide Studio只能安装在Windows平台。而Meastro是Autodesk MapGuide Studio的替代产品,它完全由C#语言编写,包含了一个用户界面,而且还提供了一系列的API。
Author部分的软件完全基于Http协议,可以实现对本地或者远程服务器上运行的MapGuide服务器上的资源进行编辑。
需要注意的是,Studio/Maestro只是地图编辑工具,而不是地图数据的创建工具,我们不能用它来画河流、湖泊等地理要素。它的主要功能是帮助你组织数据源、设置图层样式等属性、构建地图和网页布局,以供MapGuide Web应用程序使用。
● MapGuide Viewer
用于在浏览器中对地图进行浏览,编辑等,它提供两种Viewer, DWF Viewer和AJAX Viewer,由于DWF Viewer是Active控件,所以它只支持Microsoft IE(Internet Explorer),AJAX Viewer支持Fire fox, Opera (Mac) 等浏览器。
下面让我们实际操作一下:
首先在MapGuide官网上下载MapGuide Open Source,我这里用的是 3.1.2版本。该版本已经将MapGuide Server和Web Extension等集成到了一起,大可不必像十多年前的教程说的那样分开安装了。
MapGuide Web Extention支持的WebServer配置环境有三种:
1) IIS Configuration(微软的IIS服务,适合.NET开发);
2) Bundled Configuration(支持PHP、Java开发);
3) Manual Configuration(手动配置,不建议选择该项,可能会有莫名其妙的问题);
注:MapGuide需要ASP.NET 2.0.50727或更高版本的支持。
在IIS服务中选择mapguide站点,打开属性页面,选择ASP.NET标签查看ASP.NET 的版本信息,如果ASP.NET版本低于version 2.0.50727,请更新ASP.NET。
如果电脑上安装有IIS,则安装时的配置选项如下图(该图片来自别人的博客),至于IIS如何安装请自行百度
我的电脑上没有安装IIS,则安装时会提示:
于是只会出现两个配置选项,如下图,不过我不用.NET开发,所以无所谓。
如果使用PHP或Java开发,选择Bundled Configuration。第一次接触MapGuide请不要选择Manual Configuration,否则可能会有莫名其妙的问题
然后继续下一步,MapGuide Server的端口默认就好。
设置Web Server的端口,记住这里的默认端口8008,后面会用到。同时根据开发环境选择语言,这里我选择Java语言。
按照需要安装组件,这里的Web目录下就是MapGuide Web Extension中的组件,而Server目录下就是MapGuide Server的组件。最好不要同时安装多种语言的组件,选一种就好,这里可以按照需要把Apathe、Tomcat、JSP Viewer给选上。
安装完成之后,第一件事情重启你的计算机。MapGuide不会提示你重启,但是如果不重启电脑,是无法登录到服务器的!这里比较坑,切记。
然后,可以访问以下地址测试是否安装成功:
(1)测试MapAgent
注意:8008指的是安装时设置的Web Server的端口
默认用户名: Administrator
默认密码:admin
以上的用户名和密码区分大小写。
如果页面显示一XML文件,则安装成功。如果打不开请把安装目录里的webconfig.ini文件考到安装目录的上一级试一下。
(2)测试Site Administrator
http://localhost:8008/mapguide/mapadmin/login.php
Site Administrator也可从开始菜单访问,具体位置如下:
默认用户名: Administrator
默认密码:admin
以上的用户名和密码区分大小写。
如果可以登入Site Administrator页面,则安装成功。Site Administrator中可以修改所有的Server配置信息。
至此,MapGuide Open Source就算安装成功了。
到MapGuide官网下载MapGuide Maestro(本文中我的Maestro版本为6.0m5)并安装。
安装完成后打开Maestro,连接到MapGuide Server
uri是http://localhost:8008/mapguide/mapagent/mapagent.fcgi
默认用户名: Administrator
默认密码:admin
在打开的界面中,左侧的URI是当前Connect的MapGuide服务器。我们可以在服务器中创建各种资源,包括Feature Source(数据源),Layers(图层),Map Definition(地图),Web Layout等,都被视作Resource(资源)。
这里可以让MapGuide为我们创建一个标准的文件夹结构,当然也可以自己创建。合理的文件结构至少应该包括Data,Layers,Layouts,Maps,这几种文件我们之后都会用到。当然,标准的文件结构还包括Symbols和Watemarks,不过我们暂时用不上。
为了方便管理,我还是选择自己创建文件夹。对服务器点击右键,New Folder
对新建的文件夹点击右键,创建New Resource,这里选择Feature Source,通过数据源加载数据。
MapGuide并不像其他的GIS平台一样有自己的专有数据格式,它能够直接读取我们最常见的GIS格式,比如SHP、SDF、Oracle Spatial中等等,这就要归功于FDO技术了。 通俗的讲,我们可以把FDO看做像是ODBC一样的东西,使用FDO可以不关心底层的数据格式是什么样的,只要通过FDO就可以无需转换的、无损失的连接,从而发布到MapGuide平台中。
这里我们选择SHP Provider,用于连接待发布的shapefile文件。
在弹出来的界面中,添加shp并测试连接是否成功。
设置空间参考CRS,这里有四种方式可以设置空间参考,比较推荐直接使用EPSG code查找
设置完成后,保存该资源。注意,创建的资源都需要保存。
对刚才创建的数据源资源点击右键,Create Layers from Feature Source,从该数据源创建图层。
选择我们数据源中的三个shp文件,创建图层。相当于在New Resource中创建Vector Layer Definition。
打开图层,编辑图层样式。表格中一行记录代表一种Rule,Filter和Style类似于SLD配置样式时的ogc:filter和各种描述器(当然,具体用法还是有所不同)。按照自己喜欢的样式进行编辑,完成后保存图层即可。
关于Filter,我们之前在uDig中也是用FIlter来筛选要素。MapGuide Maestro的Filter语法和uDig的Filter语法类似,但要注意细节上有所差异。
我们先按照标准文件夹结构重构一下ChinaMap目录下的文件夹。在Maps目录中创建New Resource。选择创建Map Definition。
向地图中添加需要展示的图层,并为地图设置空间参考。地图的范围(map view)会根据数据自动设置,默认即可。然后保存创建好的地图。
点击Preview,预览创建好的地图。
现在,我们还需要创建一个Web Layout资源来在Web上显示地图。我们选择刚才创建的地图资源ChnMap.MapDefinition作为Layout的地图源进行创建。
创建完成后,点击Preview预览,会在默认浏览器中弹出一个MapGuide 自动为我们创建的 MapGuide Ajax Viewer用来预览地图。我们的Web Layout就发布完成啦。
当我们在MapGuide中完成一个地图的配置和发布之后,往往会有很多文件夹和资源文件产生。这对于地图服务的共享和文件的传输是及其不便的。因此,MapGuide提供了一种文件打包方式,称为MapGuide Packages,就是形如*.mgp格式的文件。
我们可以将自己创建的地图等资源打包,便于地图在其他地方的使用,也可以通过下载别人打包好的*.mgp文件,查看别人创建的资源。下面简单介绍一下Packages的创建和使用。
选中需要打包的文件夹,以ChinaMap为例,右键Create Packages,并选择导出mgp的路径即可。
其中,形如Library://ChinaMap/
的内容代表了资源ID,可以通过右键Copy Resource IDs to clipboard获取到这个值(在进行开发时用的比较多,在Maestro中操作时用得比较少)
有两种方式可以导入mgp文件,一是将mgp文件复制到MapGuide安装路径下的Server中的Packages文件夹中。
二是登录到Site Administrator,http://localhost:8008/mapguide/mapadmin/login.php
选择Manage Packages,Load Packages,加载mgp文件。
然后在MapGuide Maestro连接到MapGuide Server后,选择Package菜单栏的Load Packages,选择要加载的mgp文件,即可将资源恢复到MapGuid Server中。
总的来说,MapGuide Maestro只要连接了MapGuide Server之后,就能直接在它的客户端上面实现从数据导入、图层和地图创建、图层样式配置等,到地图发布、地图预览等功能,相当于将WebGIS发布地图的过程集成在了一个软件之上。并不需要像GeoServer那样在网页上登录server才能导入数据、样式SLD以及预览地图等。这算是MapGuide Maestro比较大的一个优势(MapGuide Studio作为其商业版软件应该也具备这一优点)。
当然,用ArcMap连接ArcGIS Server,也能实现这种地图数据加载、配置、发布等一体化操作。不过发布后的地图需要登录http://localhost:6080/arcgis/manager才能预览到,还是不如MapGuide通过Preview直接打开网页预览便捷。
而且,MapGuide的功能确实很强大,本文介绍的发布地图方法是非常浅显的。借助MapGuide平台还可以进一步进行WebGIS开发,有兴趣的同学可以试试。
写在最后:
同为商业软件,就上手难度来说,MapGuide Server +MapGuide Maestro高于ArcMap + ArcGIS Server,这不仅是由于软件本身,还加之网上有用的教程太少,官网也不咋地。刚接触MapGuide的人可能不太容易了解用它发布地图的各种概念和流程。至于MapGuide Studio会不会好用一点,我没试过,不太清楚。
再就是,尽管MapGuide将地图数据、发布、预览、开发等一体化的显得很不错(因为之前使用GeoServer + uDig + OpenLayers发布和显示地图服务来回切换软件很烦),但它的每一个环节的用户体验却不算优秀。例如图层样式的配置,Filter和Style设置相当麻烦,用得我想Shi,用户体验不及uDig,更不用说ArcMap了。
最后,本文仅代表个人观点,如果有什么写的不对的地方(比如,如果MapGuide的确是世界上最好的WebGIS平台),欢迎大家在评论中指出。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章