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

图 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 地图编辑器的用户界面

4. 创建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布局编辑器的用户界面

5. 创建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中的执行效果

时间: 2024-10-15 11:48:39

MapGuide应用程序演示样例——你好,MapGuide!的相关文章

c#Winform程序的toolStripButton自己定义背景应用演示样例源代码

C# Winform程序的toolStrip中toolStripButton的背景是蓝色的,怎样改变背景及边框的颜色和样式呢? 实现此功能须要重写toolStripButton的Paint方法 这里仅仅是给出解决这个问题的思路和方法,例如以下图,当鼠标移到button上,背景会变为黑色 实现代码例如以下: ToolStripButton tsb = (ToolStripButton)sender; Rectangle rectButton = tsb.Bounds; Point p = tool

最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)

===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例

JDBC连接MySQL数据库及演示样例

JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一訪问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发者提供了一个标准的API,据此能够构建更高级的工具和接口,使数据库开发者能够用纯 Java API 编写数据库应用程序,而且可跨平台执行,而且不受数据库供应商的限制.

java设计模式演示样例

创建模式 1.工厂方法模式(Factory Method)  将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到详细的子类.大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式. public class TestFactoryMethod { public static void main(String[] args) { AnimalFactory af=new DogFactory(); Animal1 a=af.getAnima

展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例

(本人正在參加2015博客之星评选,诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candidate?username=zhouzxi) 近期,由于要展示某项目的单元測试的代码覆盖率.我无意间在网上找到了gcovr工具.使用之后,认为这个工具相当的不错,于是便写下这篇文章,可供相关的开发者參考. 简而言之,gcovr是一个将单元測试中的代码覆盖率以多种方式(包含列表方式.XML文件方式.HTML网页方式

Android平台调用Web Service:演示样例

近期在学习Android,随着移动设备的流行,当软件走上商业化的道路.为了争夺市场,肯定须要支持Android的,所以開始接触了Android,只是仅仅了解皮毛就好,由于我们要做管理者嘛.懂点Android.管理起来easy些. Android学起来也简单,封装的更好了,一个个的控件,像是又回到了VB的赶脚. 以下将通过一个演示样例解说怎样在Android平台调用Web Service. 我们使用互联网现成的Webservice.供查询手机号码归属地的Web service,它的WSDL为htt

Android模糊演示样例-RenderScript-附效果图与代码

本文链接    http://blog.csdn.net/xiaodongrush/article/details/31031411 參考链接    Android高级模糊技术    http://stackoverflow.com/questions/14879439/renderscript-via-the-support-library 1. 程序截图     拖动红色区域,能够显示出清晰的汽车部分. 拖动以下的滑块,能够更改模糊程度.       watermark/2/text/aHR

Android之——多线程下载演示样例

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46883927 一.概述 说到Android中的文件下载.Android API中明白要求将耗时的操作放到一个子线程中运行,文件的下载无疑是须要耗费时间的.所以要将文件的下载放到子线程中运行. 以下,我们一起来实现一个Android中利用多线程下载文件的小样例. 二.服务端准备 在这个小样例中我下面载有道词典为例.在网上下载有道词典的安装包,在eclipse中新建项目web.将下载

Java线程演示样例 - 继承Thread类和实现Runnable接口

进程(Process)和线程(Thread)是程序执行的两个基本单元. Java并发编程很多其它的是和线程相关. 进程 进程是一个独立的执行单元,可将其视为一个程序或应用.然而,一个程序内部同事还包括多个进程. Java执行时环境就是一个单独的进程,在它内部还包括了作为进程的各种类和程序. 线程 能够将线程看做轻量级的进程. 线程存在于进程其中,须要的资源开销较小.同一进程中的线程共享进程的资源. Java多线程 每个Java引用都仅仅要有一个线程 - 主线程(main thread).尽管后台