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平台),欢迎大家在评论中指出。

JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手指南!的更多相关文章

  1. JavaWeb和WebGIS学习笔记(六)——使用ArcGIS for Server发布地图服务

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  2. JavaWeb和WebGIS学习笔记(五)——使用OpenLayers显示地图

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  3. JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  4. JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  5. redis学习笔记01 — 基本介绍、安装配置及常用命令

    redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...

  6. Elasticsearch 学习笔记 Elasticsearch及Elasticsearch head安装配置

    一.安装与配置 1.到官网下载Elasticsearch,https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6. ...

  7. Mysql学习笔记【一、环境安装&配置】

    安装 https://www.mysql.com/ 官网下载安装包msi 安装流程略去 注:此处有坑,重新安装mysql 8之后,发现mysql起不来,可能原因有以下几点 1.没有data文件,运行m ...

  8. Kafka超详细学习笔记【概念理解,安装配置】

    目录 本篇要点 Kafka介绍 作为流处理平台的三种特性 主要应用 四个核心API 基本术语 快速开始 安装配置Zookeeper 下载kafka 配置文件 Windows的命令 启动Zookeepe ...

  9. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

随机推荐

  1. Java设计模式之单例模式理解

    前言 本片博客主要记录Java23种设计模式中的创建型模式中的单例模式.单例模式可分为两类,一种是饿汉式,一种是懒汉式.饿汉式的三种设计方式(静态变量方式.静态代码块方式.枚举方式),懒汉式(单锁检查 ...

  2. tomcat启动 ssm项目出现乱码的解决

    0.乱码产生原因:编码和解码的方式是不同 1.出现乱码的解决方式[推荐]: 在tomcat 的配置文件web.xml 中添加上请求编码过滤器: <!-- 请求编码过滤器 --> <f ...

  3. 从零开始,开发一个 Web Office 套件(13):删除、替换已选中文字

    这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...

  4. HTTP与HTTPS有什么区别

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

  5. 99%的人都搞错了的java方法区存储内容,通过可视化工具HSDB和代码示例一次就弄明白了

    https://zhuanlan.zhihu.com/p/269134063  番茄番茄我是西瓜 那是我日夜思念深深爱着的人啊~ 已关注   6 人赞同了该文章 前言 本篇是java内存区域管理系列教 ...

  6. Java Arrays.asList(0,1,2,3,4,5,6,7,8,9).parallelStream().forEach 进行循环获取HttpServletRequest的为Null的解决方案

    Arrays.asList(0,1,2,3,4,5,6,7,8,9).parallelStream().forEach() parallelStream是并行执行流的每个元素,也就是多线程执行,这样就 ...

  7. 树莓派基本配置与Docker的安装

    一.树莓派的安装 下载镜像 在 树莓派官网 https://www.raspberrypi.org/downloads/raspbian/ Win32 DiskImager,是一个把系统镜像写入SD卡 ...

  8. 树莓派系统安装(ubuntu版本)无需屏幕

    0.前提 所需物品:一个手机.一台电脑.一个树莓派.一张tf卡和一个读卡器.所需软件:Win32DiskImager.putty还需要ubuntu系统镜像源.这些我都放在百度网盘上了链接:https: ...

  9. 顺利通过EMC实验(8)

  10. web项目中视频的上传和展示

    思路: 上传:<form>表单提交视频-->后台使用字节流保存到本地. 展示:<video>标签展示: src属性发送请求 --> 使用字节流将视频绑定到响应并返回 ...