博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapGuide应用程序演示样例——你好,MapGuide!
阅读量:5773 次
发布时间:2019-06-18

本文共 9218 字,大约阅读时间需要 30 分钟。

图 3‑4显示了基于MapGuide的Web应用程序的开发流程,整个开发流程能够分为五个阶段。图中,矩形代表任务,椭圆形被任务使用的或被任务创建的实体,箭头代表数据流。

1) 载入文件类型的数据,配置到外部数据库的连接,通过联接(Join)一个要素源到还有一个要素源扩展要素数据。

2) 通过引用要素源的数据和为要素应用样式创建图层。

3) 将图层结合起来创建地图。

4) 通过Internet或Intrant公布地图,使用户能够通过client浏览地图。

5) 使用MapGuide API为server端和client添加新的功能。

3‑4 MapGuide应用程序开发流程

在开源版MapGuide的站点上,提供了美国威斯康辛州希博伊根(Sheboygan)县的地图数据(http://download.osgeo.org/mapguide/releases/2.0.0/samples/Sheboygan.mgp)供二次开发者学习和使用。该地图数据是一个MapGuide资源包文件,它使用了zip文件格式,将它的文件后缀名改动为zip后能够使用WinZip或WinRAR等压缩软件将当中的文件提取出来。使用MapGuide站点管理器(Site Administrator)能够载入资源包,将资源包中包括数据、图层、地图等信息一次性地载入到MapGuideserver,详细步骤请參考8.2.6.1。

本节中我们通过将该地图数据公布到Internet,而且加入一个“Hello MapGuide”命令为例来介绍MapGuide的开发流程。为了具体介绍MapGuide的开发流程,我们须要将此资源包解压缩,仅仅使用当中的SDF数据文件。解压缩后该资源包文件后,会在文件夹“/Library/Samples/Sheboygan/Data”找到例如以下SDF文件。当中,“”代表解压缩后文件的根文件夹。

l BuildingOutlines.FeatureSource_DATA_BuildingOutlines.sdf

l CityLimits.FeatureSource_DATA_CityLimits.sdf

l HydrographicLines.FeatureSource_DATA_HydrographicLines.sdf

l HydrographicPolygons.FeatureSource_DATA_HydrographicPolygons.sdf

l Islands.FeatureSource_DATA_Islands.sdf

l LandUse.FeatureSource_DATA_LandUse.sdf

l Parcels.FeatureSource_DATA_Parcels.sdf

l Rail.FeatureSource_DATA_Rail.sdf

l RoadCenterLines.FeatureSource_DATA_RoadCenterLines.sdf

l Soils.FeatureSource_DATA_Soils.sdf

l Trees.FeatureSource_DATA_Trees.sdf

l VotingDistricts.FeatureSource_DATA_VotingDistricts.sdf

1. 载入数据

在创建地图之前,先须要让MapGuideserver可以訪问数据,MapGuide Studio为此提供了三种方法。

l 载入文件类型的数据,如DWG、SHP、SDF或图像文件,这样的方式会将数据上传到MapGuideserver的资源库中,可以较快地訪问数据。

l 配置到SDF、SHP和图像文件的连接,这样的方式仅仅是在MapGuideserver的资源库中保存一个到数据源的链接,能够将数据报存在MapGuideserver或其它计算机上。

l 配置到数据库或Web服务的连接,如Oracle、ArcSDE、SQL Server或WMS。

数据源类型

方法

Autodesk DWG, DXF

载入

Autodesk DWF

载入

Autodesk SDF

载入或配置连接

SHP (ArcView shapefile)

载入或配置连接

Raster formats (.Bil, .bmp, .cal, .ecw, .jpg/.jpeg, .png, .sid, .tif/.tiff, .tga)

载入或配置连接

ArcSDE database

配置连接

MySQL

配置连接

Microsoft SQL Server

配置连接

ODBC databases (Microsoft Access, Excel etc.)

配置连接

Oracle database

配置连接

Web map service (WMS)

配置连接

Web feature service (WFS)

配置连接

表 3‑1 不同数据类型的訪问方式

本节中我们使用载入的方法,MapGuide Studio提供了载入过程(Load Procedure)来简化数据的载入。载入过程本质上就是一些用于载入数据的脚本,你能够使用载入过程将数据自己主动载入到server。载入过程中定义了原始数据的位置、转化的规则、数据在server上的目标位置等信息。你可周期性地运行载入过程,更新server上文件类型的空间数据库,以保证server上的数据是最新的。

载入Sheboygan地图数据的过程例如以下:

1) 创建资源目录“Samples/Sheboygan”。

为了有效地组织地图数据,我们通常会创建一些资源目录,将不同种类的资源放在不同的目录下。在网站浏览器(Site xplorer)中选中根节点,选择右键菜单“New -> Folder”,就能够创建一个目录。

2) 创建载入过程

选择文件夹“/Library/Samples/Sheboygan/Data”下的全部SDF文件,拖拽它们到网站浏览器(Site Explorer)中资源文件夹“Samples/Sheboygan”,一个新的载入过程面板就出如今网站浏览器右方,它包括了要载入的文件列表,我们也能够加入很多其它文件到这个文件列表中。最后,点击“Load Resources”button,開始载入数据。

在新的载入过程面板中,“How Do You Want To Transform The Data”部分用于选择数据的坐标系。一般而言,仅仅有在数据自身不包括坐标系信息的时候,才须要设置数据的坐标系,本演示样例中无需设置此部分内容。“Where Do You Want To Load The Resources”部分用于选择载入到的目标位置,本演示样例中我们设置它的值为“Library://Samples/Sheboygan”。

图 3‑5 载入过程的用户界面

3) 保存载入过程

假设打算周期性地运行载入过程,更新server上文件类型的空间数据库,以保证server上的数据是最新的,那么须要保存这个新建的载入过程。点击MapGuide Studio工具栏上的“Save”button,保存该载入过程。

2. 创建图层

3‑6 图层编辑器的用户界面

在使用载入过程载入Sheboygan地图数据时,假设在“Where Do You Want To Load The Resources”部分选中了复选框“Layer(s)”,那么载入过程会在载入数据的同一时候创建图层。假设没有选中复选框“Layer(s)”,那么能够使用MapGuide Studio的图层编辑器能够创建一个图层。在图层编辑器中,我们能够为图层创建样式,也能够预览图层数据,它的用户界面如图 3‑6所看到的。

载入Sheboygan地图数据创建图层的过程例如以下:

1) 创建资源目录“Samples/Sheboygan/Layers”。

右键点击网站浏览器的目录“Samples/Sheboygan”,选择菜单“New->Folder”创建资源目录“Layers”。

2) 创建图层

首先,右键点击新建资源目录“Layers”,选择菜单“New->Layer”打开图层编辑器。然后,在“Data resource used in this layer”部分,选择资源目录“Samples/Sheboygan/Data”下的数据。

3) 保存图层

点击MapGuide Studio工具栏上的“Save”button,保存该图层到资源目录“Samples/Sheboygan/Layers”中。

如此重复,为资源目录“Samples/Sheboygan/Data”下的每一个数据创建一个图层。

3. 创建地图

一张地图能够由一个或多个图层组成,同一时候多张地图能够包括同一个图层,使用地图编辑器能够创建和编辑一张地图。为了有效地组织地图中的图层,我们还常常将多个图层组织成一个图层组。

载入Sheboygan地图数据创建地图的过程例如以下:

1) 创建资源目录“Samples/Sheboygan/Maps”。

右键点击网站浏览器的目录“Samples/Sheboygan”,选择菜单“New->Folder”创建资源目录“Maps”。

2) 创建地图

首先,右键点击新建资源目录“Maps”,选择菜单“New->Map”打开图层编辑器。然后,在“Layers”部分,点击button创建一个图层组“Base Map”。接着,选中新建的图层组,点击button加入选择资源目录“Samples/Sheboygan/Layers”的图层到该图层组。反复此操作,加入如图 3‑7所看到的的图层组和图层。

对于“Setting”部分的内容,一般不须要改动。MapGuide Studio会将地图的坐标系(Coordinate System)设置为第一个增加的、带坐标系的图层的坐标系,而且会依据增加图层的范围(Extent)自己主动设置和改动地图的初始视图范围(Initial View)。

3) 保存地图

点击MapGuide Studio工具栏上的“Save”button,将该地图命名为“Sheboygan”,保存到资源目录“Samples/Sheboygan/Maps”中。

3‑7 地图编辑器的用户界面

Web布局

当创建了一张地图之后,你须要创建一个基本Web布局或灵活Web布局用于定义MapGuide Viewer的用户界面和可用的操作,这样用户才可以通过Internet或Intranet浏览和操作地图。基本Web布局支持DWF Viewer和AJAX Viewer,它是一种比較老的Web布局,提供了比較有限的功能定制Viewer的用户界面。灵活Web布局是一个基于Fusion的Web布局,它使用模板来定义Viewer的用户界面,用户可以使用MapGuide Studio改动这些模板,它为用户定制MapGuide Viewer的用户界面提供了很大的灵活性。眼下,灵活Web布局仅仅支持Fusion Viewer。本节中,我们将分别为Sheboygan地图创建一个基本Web布局和灵活Web布局。

为Sheboygan地图创建基本Web布局的过程例如以下:

1) 创建资源目录“Samples/Sheboygan/Layouts”。

右键点击网站浏览器的目录“Samples/Sheboygan”,选择菜单“New->Folder”创建资源目录“Layouts”。

2) 创建基本Web布局

首先,右键点击新建资源目录“Layouts”,选择菜单“New->Web Layout->Basic Web Layout”打开基本Web布局编辑器。然后,在“Map resource used in this layout”部分,选择在Web布局中显示的地图,一个基本Web布局仅仅能显示一张地图。本例中,我们选择资源目录“Samples/Sheboygan/Maps”下的地图“Sheboygan”。

我们能够依据须要改动“Setting”和“Toolbar and Menus”部分的内容,比如“Text for browser title bar”能够用于设置浏览器中打开Viewer时标题栏中显示的标题,“Display these components in the Viewer”用于设置Viewer中显示那些组件。

3) 保存基本Web布局

点击MapGuide Studio工具栏上的“Save”button,将该Web布局命名为“Basic Web Layout”,保存到资源目录“Samples/Sheboygan/Layouts”中。

4) 预览Web布局

点击“Preview in browser using DWF Viewer”文本框右边的“Go”button能够使用DWF Viewer在浏览器中预览Web布局;点击“Preview in browser using AJAX Viewer”文本框右边的“Go”button能够使用AJAX Viewer在浏览器中预览Web布局。用户也能够将文本框中的URL复制到浏览器的地址栏中,从而预览此Web布局。

须要注意的是,假设要在浏览器中预览Web布局,必须保存过该Web布局,浏览器中预览的是最后一个版本号的Web布局。假设希望在没有保存Web布局之前预览该Web布局,仅仅能使用Web布局编辑器的“Web Preview”,点击button就可以预览它。

图 3‑8 基本Web布局编辑器的用户界面

为Sheboygan地图创建灵活Web布局的步骤与创建基本Web布局的步骤基本同样,例如以下:

1) 创建资源目录“Samples/Sheboygan/ FlexibleLayouts”。

右键点击网站浏览器的目录“Samples/Sheboygan”,选择菜单“New->Folder”创建资源目录“FlexibleLayouts”。

2) 创建灵活Web布局

首先,右键点击新建资源目录“FlexibleLayouts”,选择菜单“New->Web Layout->Flexible Web Layout”打开灵活Web布局编辑器。然后,在“Select a template for the web layout”部分,为Web布局选择一个模板,不同的模板定义了不同的Fusion Viewer的用户界面风格。接着,选中“Config components of the selected components”部分的“Map”标签,在“Map resource used in this layout”部分选择资源目录“Samples/Sheboygan/Maps”下的地图“Sheboygan”。

我们能够依据须要改动“Config components of the selected components”部分的内容,从而定制任务窗格、工具栏、图例、右键菜单、选择窗格、状态栏用户界面组件。

3) 保存灵活Web布局

点击MapGuide Studio工具栏上的“Save”button,将该Web布局命名为“Aqua”,保存到资源目录“Samples/Sheboygan/ FlexibleLayouts”中。

4) 预览Web布局

点击button“View in Browser…”,能够使用Fusion Viewer在浏览器中预览Web布局。用户也能够将文本框中的URL复制到浏览器的地址栏中,从而预览此Web布局。

与基本Web布局同样,假设要在浏览器中预览Web布局,必须保存过该Web布局。假设希望在没有保存Web布局之前预览该Web布局,仅仅能使用Web布局编辑器的“Web Preview”,点击button就可以预览它。

图 3‑9 灵活Web布局编辑器的用户界面

MapGuide应用程序

记得在学习很多编程语言的时候,教授的第一个程序大多是“Hello, World!”,如今让我们也体验一下怎样使用MapGuide实现你的第一个MapGuide应用程序——“Hello, MapGuide!”。 图3‑10显示了这个程序在AJAX Viewer中的执行效果,点击“Hello MapGuide”button,就会弹出一个对话框显示字符串“Hello, MapGuide!”。

对于基本Web布局和灵活Web布局,实现上述功能的步骤不尽同样,以下我们分别介绍怎样在基本Web布局和灵活Web布局中实现这些功能。

3‑10 “你好,MapGuide!”程序演示样例在AJAX Viewer中的执行效果

5.1 在基本Web布局中创建“你好,MapGuide!”程序

在基本Web布局中创建“你好,MapGuide!”程序须要下面三步:

1) 创建自己定义命令“Hello MapGuide”。

MapGuide支持两类自己定义命令“Invoke JavaScript”和“Invoke URL”。“Invoke JavaScript”用于调用JavaScript脚本,这写JavaScript脚本有浏览器直接执行,主要用于和Viewer进行交互,可以调用Viewer API,属于client命令;“Invoke URL”用于调用PHP、ASP.NET或JSP编写的Webserver扩展页面(Web Server Extensions Page),这些Webserver扩展页面可以调用MapGuide Web API,属于Webserver端命令。

本节中,我们将使用“Invoke JavaScript”调用JavaScript函数alert(…)弹出一个“Hello, MapGuide!”对话框。

首先,在网站浏览器中选择一个之前创建的基本Web布局,双击此节点打开基本Web布局编辑器。然后,点击基本Web布局编辑器头部的超链接“New Commands”,打开如图3‑11所看到的的用户界面。接着,点击下拉button“Add -> Invoke Script”创建一个“Invoke Script”类型的命令。最后,在“Additional Parameters”标签页中输入JavaScript脚本“alert("Hello, MapGuide!");”。

普通情况下,我们还会为每一个命令赋予一个有意义的名称、图标、工具提示等,在“Setting”标签页中能够改动这些命令属性。本节中,我们将此命令命名为“Hello MapGuide”,设置工具提示为“Hello MapGuide”,图标为默认图标。

3‑11 基本Web布局用于创建命令的用户界面

2) 将“Hello MapGuide”命令加入到MapGuide Viewer的工具栏。

要调用这个新建的命令,须要将这个命令放置在工具栏、上下文菜单或任务栏菜单。本节中,我们将这个新建的命令放置在工具栏上。

首先,点击基本Web布局编辑器头部的超链接“Toolbar and Menus”,打开如图3‑12所看到的的用户界面。接着,将右面命令列表中的“Hello MapGuide”命令拖拽到左面的工具栏树形列表中。

3‑12 加入命令到Viewer工具栏的用户界面

3) 保存改动后的Web布局。

保存改动的Web布局后,拷贝“Preview in browser using DWF Viewer”文本框或“Preview in browser using AJAX Viewer”文本框中的URL复制到浏览器的地址栏中,就能够使用DWF Viewer或AJAX Viewer在浏览器中执行该应用程序了。

5.2 在灵活Web布局中创建“你好,MapGuide!”程序

灵活Web布局提供了一系列Widget以实现一些通用的功能,通过对这些Widget进行简单的定制能够满足用户某些特定的需求,比如它提供了“Invoke Script”和“Invoke URL”Widget,这两个Widget能够实现和基本Web布局中“Invoke Script”和“Invoke URL”命令同样的功能。本节中,我们使用“Invoke Script”Widget实现“你好,MapGuide!”程序。

在灵活Web布局中创建“你好,MapGuide!”程序须要下面三步:

1) 创建“Hello MapGuide”组件。

首先,在网站浏览器中选择一个之前创建的灵活Web布局,双击此节点打开灵活Web布局编辑器,展开“Config components of the selected template”会显示如图3‑13所看到的的用户界面。然后,选择“Toolbar (Primary)”标签页,点击“Components available in this layout”部分的button“New”,会弹出如图3‑14所看到的的对话框。接着,选择“Invoke Script”组件,点击“OK”button将它增加当前Web布局。最后,在“Parameters for the selected item”部分的“ID”文本框中输入新建组件的ID“Hello MapGuide”,“Script to invoke”文本框中输入JavaScript脚本“alert("Hello, MapGuide!");”。假设须要,还能够设置组件的工具提示、图标等属性信息。

3‑13 灵活Web布局用于Viewer中组件的用户界面

3‑14 灵活Web布局用于创建新组件的用户界面

2) 将“Hello MapGuide”命令加入到Fusion Viewer的工具栏。

在“Components available in this layout”中选中新建的“Hello MapGuide”组件,拖拽该组件到左面的“Items disaplayed in the container”列表中。

3) 保存改动后的Web布局。

保存改动的Web布局后,拷贝“Web address of this layout”文本框中的URL到浏览器的地址栏中,就能够使用Fusion Viewer在浏览器中执行该应用程序了,执行结果如图 3‑15所看到的。

3‑15 “你好,MapGuide!”程序演示样例在Fusion Viewer中的执行效果

转载地址:http://jgxux.baihongyu.com/

你可能感兴趣的文章
在Postgres 数据库中生成36位的UUID代码
查看>>
基于mybatis的BaseDao及BaseService深度结合
查看>>
从程序员进阶到架构师,6大核心技能要领详解
查看>>
CDH安装方法
查看>>
spring mvc+Ajax跨域请求-CORS方式
查看>>
Windows 8.1 下硬盘方式安装 Ubuntu 14.04
查看>>
SpringMVC+Shiro权限管理
查看>>
Python中的模块导入
查看>>
Springboot + mongoDB : So easy
查看>>
mybitis 使用记录
查看>>
关于构造函数 和 析构函数 能否抛出异常的讨论
查看>>
haproxy负载均衡和配合keepalived的快速部署
查看>>
WIN10+RTX2070 tensorflow-gpu环境搭建
查看>>
小黑小波比.功能测试登录用户
查看>>
Java enum用法详解
查看>>
去云端的多条途径
查看>>
Docker容器从一知半解到入门
查看>>
关于“方法参数”
查看>>
Redis命令总结
查看>>
unable to write 'random state'错误解决
查看>>