JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手指南!
阅读原文时间:2023年07月08日阅读:5

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应用开发系列(一)----MapGuide的开源地图编辑(Authoring Tool)工具Meastro介绍

MapGuide应用开发系列(二)----MapGuide Open Source 2.1 的安装

MapGuide应用开发系列(三)----MapGuide 数据包管理及Maestro亮点功能介绍

MapGuide Open Source v2.2 快速安装学习指南

Mapguide配置心得

MapGuide和Openlayers开发

MapGuide应用程序示例——你好,MapGuide!

mapguide 使用MapGuide Open Source2.1 & Maestro快速搭建一个基本的WebGIS

MapGuide open source开发系列教程四: 体系结构(转贴)

MapGuide open source开发心得一:简介


MapGuide结构介绍

实践操作之前先介绍一下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 Open Source安装与配置

首先在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

http://localhost:8008/mapguide/mapagent/mapagent.fcgi?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&TYPE=&DEPTH=-1

注意: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 Maestro安装并发布地图

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


加载shp数据源:

对新建的文件夹点击右键,创建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 Layout资源来在Web上显示地图。我们选择刚才创建的地图资源ChnMap.MapDefinition作为Layout的地图源进行创建。


创建完成后,点击Preview预览,会在默认浏览器中弹出一个MapGuide 自动为我们创建的 MapGuide Ajax Viewer用来预览地图。我们的Web Layout就发布完成啦。

三、MapGuide数据包管理

当我们在MapGuide中完成一个地图的配置和发布之后,往往会有很多文件夹和资源文件产生。这对于地图服务的共享和文件的传输是及其不便的。因此,MapGuide提供了一种文件打包方式,称为MapGuide Packages,就是形如*.mgp格式的文件。

我们可以将自己创建的地图等资源打包,便于地图在其他地方的使用,也可以通过下载别人打包好的*.mgp文件,查看别人创建的资源。下面简单介绍一下Packages的创建和使用。

  1. MapGuide Packages的创建

选中需要打包的文件夹,以ChinaMap为例,右键Create Packages,并选择导出mgp的路径即可。

其中,形如Library://ChinaMap/ 的内容代表了资源ID,可以通过右键Copy Resource IDs to clipboard获取到这个值(在进行开发时用的比较多,在Maestro中操作时用得比较少)


  1. 加载MapGuide Packages到服务器

有两种方式可以导入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平台),欢迎大家在评论中指出。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章