当前位置:文档之家› 第2章 桌面GIS应用软件的开发方式

第2章 桌面GIS应用软件的开发方式

第2章 桌面GIS应用软件的开发方式
第2章 桌面GIS应用软件的开发方式

第2章桌面GIS应用软件的开发方式

对于桌面GIS应用来说,ArcGIS平台不仅提供了用于开发独立运行的GIS应用软件的二次开发工具包ArcGIS Engine,还提供了对ArcGIS Desktop桌面软件进行扩展的开发方法。在开发一个具体的GIS行业应用软件时,程序员应该根据系统规模、用户水平和具体应用环境等设计相应的系统架构,从而决定是采用C/S架构还是B/S架构?如果采用C/S 架构,是开发一个独立的系统还是在现有的ArcGIS桌面软件上进行扩展?因此选择合适的开发方式是进行GIS软件设计的第一步。特别需要注意的是,并不是所有的GIS应用系统都一定要基于ArcGIS Engine开发。因此,本章将首先介绍基于ArcGIS平台开发桌面GIS应用系统的其它几种方式,包括使用VBA的方法,使用DLL动态链接库的方法,以及使用Add-In的方法等。最后再介绍使用ArcGIS Engine创建一个简单的能独立运行的GIS应用软件的方法。

2.1使用VBA进行桌面软件开发

VBA(Visual Basic for Applications)可以理解为简化的Visual Basic语言,它是Visual Basic语言的子集,主要用于对支持VBA的Windows程序(称为“宿主程序”)进行扩展和定制。Word、Excel等Office办公套件很早就集成了VBA语言,利用它可以进一步扩充这些宿主程序的功能,或者基于这些宿主程序开发较为复杂的应用系统。Visual Basic开发的系统可以脱离Visual Basic而运行,但是基于VBA开发的系统不能脱离宿主软件运行,它的代码存储在宿主程序的文档中,如对Word进行VBA定制和开发的代码存储在*.doc 文件中,对ArcMap进行扩展的代码存储于*.mxd地图文档中。

使用VBA进行系统扩展是一种轻量级的软件开发模式。Esri目前不特别推荐使用VBA 进行系统开发,而更侧重于推荐使用Python语言进行扩展。但在很多情况下,特别是一些业务模式相对固定的生产和管理部门,并不需要复杂的GIS分析功能,而是更侧重于地理数据的管理,并且这些用户基本掌握了ArcGIS软件的使用,通过VBA开发方式将一系列

业务管理流程自动化为工具按钮置于ArcGIS桌面软件中,既能满足行业管理的需求,又能充分利用ArcGIS本身强大的空间数据管理功能,这时使用VBA开发定制无疑是一种较好的方式。但需要注意的是,出于产品线战略布局的总体考虑,ArcGIS 10.1中已不再支持VBA开发(当然10.0及以下版本的ArcGIS还可以使用VBA),对应的开发模式转为Add-in 方式。不过由于生产单位软件更新的滞后性,在今后较长的一段时间内,较低版本的ArcGIS 软件依旧存在,因此了解VBA的开发还是有必要的。

2.1.1VBA开发方式

通过VBA开发环境进行ArcGIS桌面软件的扩展和定制是最简单的GIS软件开发方式。开发者只需专注于ArcGIS软件不能提供的功能,对于ArcGIS软件已经提供的工具,直接“拿过来”使用即可。并且VBA环境本身已经提供了对整个应用程序和文档进行控制的变量,例如在ArcMap中开发人员可以直接通过Application、ThisDocument两个全局变量获取程序本身和程序所使用的文档对象,使开发更为快捷和简单。

在ArcGIS 10.0版本中,进行VBA的开发需要单独安装VBA开发程序模块,安装ArcGIS Desktop时不再附带VBA安装选项。根据操作方式的不同,在ArcGIS Desktop中进行VBA编程的方法有两种:一种是编写VBA宏命令,另一种是创建UIControl工具并在其事件中写入实现代码。

2.1.1.1宏命令方式

开发人员将那些能够自动执行某种操作的命令统称为宏(Macros)。宏是一种操作命令,它和菜单操作命令的使用方式一致,因此可以认为宏和普通的命令是一样的。使用宏的目的往往是完成某些重复的操作,借以提高工作效率。

下面以在ArcMap中根据选择集创建临时图层为例,说明如何使用宏命令进行VBA 的编程。

1)在ArcMap中,点击主菜单中的【Customize】菜单,选择【VBA Macros】然后

选择【Macros…】或者直接按【Alt+F8】键弹出图2.1所示的宏命令对话框。在其中输入宏名称为“CreateLayerBySelection”。

图2.1 创建宏

在“宏的位置”下拉列表中,“Project”选项表示该宏命令将保存在程序正在使用的*.mxd 文档中;“Normal”选项表示这个宏命令将保存在Normal.mxt模板中,这样宏命令将出现在任何一个新建的*.mxd文档中,因为每个*.mxd文档都是从Normal.mxt模板中派生生成的。

2)点击【创建】按钮,自动进入图2.2所示的VBA程序代码实现界面。

图2.2 VBA程序界面(宏命令方式)

3)在VBA程序界面中,完成CreateLayerBySelection()过程(Sub),实现根据选择集创建临时图层的操作,具体代码如下:

Sub CreateLayerBySelection()

'定义文档变量

Dim pMxDoc As IMxDocument

Set pMxDoc = Application.Document

'定义地图文档

Dim pMap As IMap

Set pMap = pMxDoc.ActiveView.FocusMap

Dim pLayer As ILayer

Dim pNewLayer As ILayer

Dim pEnumLyr As IEnumLayer

Dim pFeatLyr As IFeatureLayer

Dim pNewFeatLyr As IFeatureLayer

Dim pFeatSel As IFeatureSelection

Dim pFeatLyrDef As IFeatureLayerDefinition

'获取当前地图中的图层枚举类型

Set pEnumLyr = https://www.doczj.com/doc/9513897364.html,yers

pEnumLyr.Reset

Set pLayer = pEnumLyr.Next

'循环遍历当前地图文档中所有图层

While (Not pLayer Is Nothing)

Set pFeatLyr = pLayer

Set pFeatSel = pFeatLyr

'判断当前图层是否有选中要素,有则根据选中要素生成图层,无则直接跳过

If pFeatSel.SelectionSet.Count <> 0 Then

Set pFeatLyrDef = pFeatSel

Set pNewFeatLyr = pFeatLyrDef.CreateSelectionLayer("New" + pFeatLyr.FeatureClass.AliasName, True, "", "")

pFeatSel.Clear

'将根据选择集生成的图层加载到当前地图文档中

If Not pNewFeatLyr Is Nothing Then

Set pNewLayer = pNewFeatLyr

pMap.AddLayer pNewLayer

End If

End If

Set pLayer = pEnumLyr.Next

Wend

End Sub

4)点击【保存】按钮,保存代码。关闭VBA环境回到ArcMap环境中,点击主菜单中的【Customize】菜单,然后选择【Customize Mode…】,弹出如图2.3所示对话框,在Commands选项卡中单击“[Macros]”可以看到刚才创建的宏命令出现在对话框中,选中该宏命令拖动至ArcMap工具条中,则会在工具条中出现对应的工具按钮。

图2.3 宏的调用

5)拖拽完成宏命令添加后,用户可以通过在该宏命令按钮上单击鼠标右键来改变它

的属性信息。选中该宏命令按钮,单击鼠标右键,弹出图2.4所示下拉菜单,用户可以在这里设置该宏命令按钮的图像、样式等属性信息,如设置成是只显示文字还是同时显示文字和图片等。当然用户也可以对按钮进行编组、删除等操作。

图2.4 宏属性信息设置

6)单击该宏命令按钮,ArcMap根据当前选择集的情况自动创建临时图层,并将创建的临时图层添加到当前地图中。

2.1.1.2UIControl方式

使用宏命令可以将重复的过程包装起来,让用户更加方便的调用,但是如果涉及到鼠标交互,如使用鼠标拖拽的方式来实现拉框放大、缩小等,宏命令则无法做到。这时需要使用ArcMap提供给开发人员的UIControl工具进行鼠标交互,即VBA开发的另一种方式:使用UIControl进行交互式开发。

1)在ArcMap界面中,点击主菜单中的【Customize】,然后选择【Customize Mode…】,弹出图2.3所示【Customize】对话框,在Commands选项卡中找到“[ UI Control ]”,然后点击【New UIControl】,弹出如图2.5所示【New UIControl】对话框。

图2.5 新建UIControl对话框

在这个对话框中,可以创建自定义的控件,它罗列了四种不同的类型,每种类型的作用如表2.1所示:

表2.1 UIControl类型与用途

2)下面以新建UIToolControl为例介绍UIControl的用法。选择【UIToolControl】单选框,点击按钮【Create and Edit】进入图2.6所示VBA编码界面。

图2.6 VBA编码界面(UIControl方式)

3)以“定位到所选范围”功能为例,在图2.7右侧事件下拉框列表中选择MouseDown 事件。

图2.7 选择控件事件

在该事件中,添加“将当前视图窗口定位到鼠标绘制范围”的代码,具体代码如下所示:

'获取当前地图文档

Dim pMxDoc As IMxDocument

Set pMxDoc = Application.Document

Dim pScreenDis As IScreenDisplay

Set pScreenDis = pMxDoc.ActiveView.ScreenDisplay

'获取缩放范围

Dim pEnv As IEnvelope

Dim pRubber As IRubberBand

Set pRubber = New RubberEnvelope

Set pEnv = pRubber.TrackNew(pScreenDis, Nothing)

'缩放到所选范围

pMxDoc.ActiveView.Extent = pEnv

pMxDoc.ActiveView.Refresh

4)点击【保存】按钮,保存代码关闭VBA环境回到ArcMap环境中。

5)点击主菜单中的【Customize】,然后选择【Customize Mode…】,弹出图2.8所示对话框,在Commands选项卡中点击“[ UI Control ]”可以看到刚才创建的功能按钮出现在对话框中,选中该功能按钮并将其拖动至ArcMap工具栏中,点击该按钮即可执行相应代码。

图2.8 添加UIControl工具

通过上面两个简单的例子,可以看出VBA编程既具有充分利用现有ArcGIS桌面软件所提供功能的便利,又能有效地扩展原有桌面软件的功能。生产管理部门和数据处理需求较多的业务化部门均会对这种开发方式有较强的需求。本书之所以介绍VBA编程,一方面在于提醒读者进行项目设计时勿对简单项目进行过度设计,另一方面也告诉读者对于日常工作中经常进行的重复性工作可以通过VBA简单编程的方法来极大地提高工作效率。

2.1.2VBA代码的安全性

VBA代码保存在文档或者模板中,即保存在*.mxd或者*.mxt文件里,开发人员编写的代码很容易被别人使用。为了保护开发人员的成果不被非法修改和利用,可以设置VBA 代码的密码,以增加安全性。

在【Customize】对话框中选择【Options】选项卡,可以查看、设置VBA代码的安全级别等相关信息。点击图2.9中的【Lock Customization…】按钮,用户会被要求输入文档保护密码。设置密码后,在尝试打开VBA代码编写窗口时,将会出现一个认证对话框,只有输入正确的密码才能进入。

图2.9 设置VBA代码的安全级别

同时为了避免使开发人员的代码成为宏病毒的载体,点击【Change VBA Security…】按钮,可以设置VBA代码的安全级别,最高级别的安全性将只能运行有签名的宏,而潜在的不安全命令将会被删除。实际上,由于VBA代码的安全性较低,给VBA代码设置密码更多的是为了保护代码不被非法修改致使系统无法运行,而不是防止代码被别人非法拷贝。当开发人员逐渐掌握了GIS开发技能并具有一定的编程经验后,将会发现编程思想、系统框架设计等远比代码编写重要的多。

2.2使用DLL进行桌面软件开发

采用VBA固然是一种简单的开发方式,但也受到很多限制,如不能脱离ArcGIS Desktop运行、安装部署不易等,同时很多时候一个GIS应用软件还需要处理更多具有行业特色的业务,这时候采用DLL编程进行桌面软件的功能扩展是一种更可取的方式。

动态链接库(Dynamic Link Library,DLL)是Windows平台下的一种类文件编译格式,这种格式的文件可以被任何支持COM规则的语言所支持和引用,ArcObjects组件本身的物理文件就是DLL文件。DLL开发方式的特点是开发环境脱离了ArcGIS Desktop软件,读者可以使用自己熟悉的开发语言,如Java、C#等语言进行开发;开发的功能可以更为强大和灵活;编译的结果是DLL文件,封装性更好;功能分发只需传递DLL文件即可。实际上,开发大型软件一般采用DLL的方式将一类相似的操作进行封装,这样不仅提高了程序的复用性,减少了代码开发的工作量,而且便于软件的更新和分发。

2.2.1DLL开发方式

下面仍以将当前视图范围定位为鼠标所绘范围为例对DLL开发方式进行介绍,实例位于本书随书光盘“…\chp02\DLL开发\code”中,实例所用数据位于本书随书光盘“…\chp02\DLL开发\data”中,具体操作步骤如下:

1)启动Visual Studio 2010,创建一个新项目。在图2.10所示的【新建项目】对话框中,在左侧“Visual C#”选择项下,选择“ArcGIS”→“Extending ArcObjects”,在右侧窗口中选择“Class Library(ArcMap)”,并输入名称“SampleDll”、指定存储位置“C:\”,点击【确定】按钮,新建一个项目。

图2.10 新建项目

2)由于在开发过程中,不同的ArcGIS命名空间位于不同的引用项文件中,所以在弹出的如图2.11所示的对话框中选择要添加的ArcGIS引用项,点击【Finish】按钮,完成项目创建。

图2.11 添加引用对话框

3)在创建完成的工程中,选中SampleDll工程,点击鼠标右键。在弹出的右键菜单中选择【添加】→【新建项…】,如图2.12所示。

图2.12 添加新建项

4)由于本实例为新建一个工具,因此在弹出的图2.13所示【添加新项】对话框中,选择“Extending ArcObjects”→“Base Tool”,并输入工具名称“ZoomIn”,点击【添加】按钮。

图2.13 添加工具

5)由于实例是对ArcMap桌面程序的扩展,所以在弹出的如图2.14所示的对话框中选择“ArcMap,MapControl or PageLayoutControl Tool”选择项。开发人员可以根据所扩展ArcGIS Desktop桌面程序的不同,选择不同的选择项。

图2.14 指定工具类型

6)在添加的工具类中,分别在base.m_category、base.m_caption、base.m_toolTip、base.m_name等属性中输入工具的类别名称(可使用本地化字符)、名称(可使用本地化字符)、鼠标放置在工具上时的提示信息(可使用本地化字符)、名称(程序中的唯一ID,使用非本地化字符)等信息,然后在OnMouseDown事件处理函数中添加如下代码,实现将当前视图窗口定位到鼠标所绘范围的功能。

核心代码如下:

public override void OnMouseDown(int Button, int Shift, int X, int Y)

{

//获取当前地图文档

IApplication pApplication = m_hookHelper.Hook as IApplication;

IMapDocument pMapDoc = pApplication.Document as IMapDocument;

IScreenDisplay pScreenDis = new ScreenDisplayClass();

pScreenDis = pMapDoc.ActiveView.ScreenDisplay;

//获取所绘范围

IEnvelope pEnv = new EnvelopeClass();

IRubberBand pRubberBand = new RubberEnvelope();

pEnv = pRubberBand.TrackNew(pScreenDis, null) as IEnvelope;

//设置当前视图范围

pMapDoc.ActiveView.Extent = pEnv;

//刷新

pMapDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);

}

7)按【F5】键启动程序调试,将自动启动ArcMap程序,在ArcMap界面中,点击主菜单中的【Customize】菜单,然后选择【Customize Mode…】,弹出图2.15所示对话框,在【Commands】选项卡中找到“ZoomIn”类别中的“ZoomIn”命令,将其拖动到ArcMap 工具栏中。

图2.15 ArcMap中添加自定义工具

8)参照“2.1.1节VBA开发方式—宏命令方式”中的步骤5来改变工具按钮的显示方式、图片等属性。使用时,点击该工具在地图窗口拉出一个矩形范围,执行将当前文档定位到所绘制范围的功能。

2.2.2DLL功能的应用部署

采用DLL方式所编译的结果是生成扩展名为dll、pdb、tlb的三种文件。DLL是微软公司在Windows操作系统中实现共享函数库概念的一种方式,函数的可执行代码位于一个DLL 中,该DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源,多个应用程序可同时访问内存中单个DLL 副本的内容。DLL在Windows应用程序中的使用非常广泛。PDB全称为Program Database,这个文件主要存储对应模块(dll或者exe)内部的所有符号,以及符号对应的地址、文件名和行号。PDB文件是在编译工程时和对应的模块(exe或dll)一起生成,可以理解为调试时应用程序和源文件之间的一个桥梁。TLB文件是一个说明文件,用户可以通过TLB文件得知DLL 中的COM接口以及常量等信息。其可以单独发行,也可以作为组建DLL中的一个资源随组件一起发行。在基于DLL方式进行ArcGIS功能扩展时,将同时编译生成这三种文件。用户要在ArcGIS Desktop中使用该DLL提供的工具,需要将生成的DLL文件进行注册。

在ArcGIS 10.0版本中,提供了用于注册DLL的注册程序,即ESRIRegAsm.exe(该注册工具随ArcGIS Desktop一同安装,一般位于...\Program Files\Common Files\ArcGIS\bin

目录下,当然不同安装环境该目录不同,读者可自行查找)。

自定义的COM组件在应用时必须注册为Desktop或者Engine组件,具体的注册过程如下:

1)找到要注册的DLL文件,双击该文件,弹出如图2.16所示的注册版本类型对话框,此处选择Desktop,点击【Register】按钮,以注册DLL文件。

图2.16 DLL文件注册版本选择

2)当弹出提示注册成功对话框时,表示注册成功。注册成功后,在ArcMap界面中,点击主菜单中的【Customize】菜单,然后选择【Customize Mode…】,在【Commands】选项卡中找到DLL文件所提供的工具,将其拖动到ArcMap工具栏中,就可使用该DLL文件中工具所包含的功能。

在对DLL文件进行注册后,当用户不再需要该DLL文件所包含的功能时,可以使用反注册的方式来清除该DLL文件在ArcGIS中的扩展,反注册的步骤如下:

1)点击【开始】菜单→【所有程序】→【附件】→【命令提示符】,在命令输入窗口中输入“cd C:\Program Files\Common Files\ArcGIS\bin”(目录位置可能有所不同)命令定位到注册工具目录。

2)在光标后输入反注册命令,即:“ESRIRegAsm.exe /p:desktop /u "C:\SampleDll\SampleDll\bin\Debug\SampleDll.dll"(DLL文件所在的绝对路径信息)”,如图2.17所示,回车完成DLL文件的反注册,当弹出反注册成功提示框时表示反注册成功,如图2.18所示。

图2.17 DLL文件反注册

图2.18 反注册成功

2.3使用Add-In进行桌面软件开发

下面对Add-In方式的开发和安装部署进行简单的介绍,使读者了解如何利用Add-In 方式扩展ArcGIS桌面程序。(Add-In分为基于.NET和基于Python两种,本书以基于.Net 为例。)

2.3.1Add-In开发方式

Add-In是ArcGIS 10.0提供的一种能够快速扩展桌面应用程序的全新的扩展方式。作为ArcGIS 10.0全新定制方式,它具有以下特点:

1. 容易创建:ArcGIS 10.0不仅提供了很多创建Add-In的模板,也提供了详细的接口

来实现各种功能。

2. 更易共享:Add-In本质上是一个Zip压缩文件,这个压缩文件由配置文件、程序集和资源三项构成,易于网络、传输、共享。

3. 更加安全:可以对Add-In文件进行数字签名,使应用的安全性得到保障。

4. 更易安装和管理:只要安装有桌面软件,系统就能自动识别Add-In文件,双击即可安装部署,同时ArcGIS Desktop中也提供了用于管理Add-In的工具。

下面以“获取多边形选择集”为例,介绍如何采用Add-In开发方式进行桌面程序的扩展,实例位于本书随书光盘“…\chp02\Add-In开发\code”中,实例所用数据位于本书随书光盘“…\chp02\Add-In开发\data”中,具体操作步骤如下:

1)启动Visual Studio 2010,选择【文件】→【新建项目】,弹出如图2.19所示的对话框,在左侧“Visual C#”选择项下,选择“ArcGIS”→“Desktop Add-Ins”,在右侧窗口中,选择“ArcMap Add-in”方式,输入新建项目的名称“SampleArcMapAddin”,选择项目的存储位置“C:\”,点击【确定】按钮,创建Add-In示例项目。

图2.19 Add-In项目创建

2)在图2.20所示的【ArcGIS Add-Ins Wizard】创建向导对话框中,输入要创建的

Add-In的功能描述信息,点击【Next】按钮,弹出图2.21对话框。

图2.20 设置Add-In描述信息

3)由于本示例为创建一个工具,因此在如图2.21所示对话框的Add-In Types中勾选Tool类型(开发人员可以根据需创建Add-In功能的不同,勾选不同类型的Add-In,Add-In 的具体类型如表2.2所示),在右侧输入要创建的Add-In工具的属性信息,点击【Finish】按钮完成Add-In工具的配置。

表2.2 Add-In类型与用途

4)在生成的Add-In工程中,包含两部分内容,即Config.esriaddinx和SelectTool.cs。其中Config.esriaddinx文件包含Add-In的配置信息,SelectTool.cs文件是实现获取选择集

功能的类文件,如图2.22所示。

基于GIS的旅游信息系统的设计与实现

基于GIS的旅游信息系统的设计与实现 王永波,国土资源与旅游学院 摘要:近年来,随着全球经济的快速发展,人们的生活水平不断的提高,作 为人们休闲娱乐方式之一的旅游业得到了飞速发展。中国的旅游业发展尤为迅速,旅游产业信息化已成为一种必然趋势。同时,游客对旅游服务质量和管理水平提出了更高的要求。GIS技术与旅游业相结合,对解决这一问题有很大帮助,它将加快旅游产业信息化的进程,促进中国旅游业的进一步发展。本文首先对国内外旅游信息化状况进行了回顾与展望并论述了GIS与旅游信息化相结合的必要性与可行性。笔者以合肥旅游地理信息系统为例研究这一话题。通过对系统目标、用户需求、数据库分析,进行旅游GIS结构与功能设计,开发出了基于GIS 的合肥旅游信息系统。由于旅游信息涉及的范围很广,需要综合考虑游客实现旅游行为的各个环节,因此,本系统还有许多需要进一步改进和完善的地方。但我们相信,在全球数字化的趋势下,这种基于GIS的旅游信息系统必将成为新一旅游信息系统发展的走向。 关键词:旅游地理信息系统;空间数据;属性数据;数据库 Travel Information System Design and Implementation Based on GIS Wang Yongbo ,College Of Territorial Resources And Tourism Abstract:In recent years, with the rapid development of global economy, People's standard of living rise, the tourism as people entertainment form got rapid development. China is especially rapid development of tourism industry, tourism industry informatization has become a necessary trend. At the same time, the tourists put forward higher request to tourism service quality and management level. the combination of GIS technology and tourism have very great help to solve this problem. It will speed up the process of information tourism industry, promote the further development of Chinese tourism industry.This paper first to domestic and international tourism status of informatization retrospect and prospect and discusses the necessity and feasibility of GIS and tourism information combination. This paper take Hefei tourism geography information system as an example. Through to the system target, user demand, database analysis, tourism GIS structure and function design, developed based on GIS of Hefei travel information system.Due to the tourist

GIS二次开发实验报告

GIS二次开发实验报告 学号: 姓名: 班级: 专业: 指导老师: 二零一五年11月15日

目录 1 实验一:软件安装与AOI书签开发 (2) 1.1 实验目的 (2) 1.2 实验内容 (2) 1.3 实验结果 (2) 2 实验二:地图数据组织与访问 (5) 2.1 实验目的 (5) 2.2 实验内容 (5) 2.3 实验结果 (5) 3 实验三:地图渲染与制图输出 (9) 3.1 实验目的 (9) 3.2 实验内容 (9) 3.3 实验结果 (9) 4 实验四:空间数据处理 (14) 4.1 实验目的 (14) 4.2 实验内容 (14) 4.3 实验结果 (14) 5 实验五:GIS分析 (20) 5.1 实验目的 (20) 5.2 实验内容 (20) 5.3 实验结果 (20) 6实验六:栅格数据处理 (25) 4.1 实验目的 (25) 4.2 实验内容 (25) 4.3 实验结果 (25) 7实验总结 (31)

1实验一:软件安装与AOI书签开发 1.1实验目的 ?掌握AOI书签程序开发 1.2实验内容 ?实现AOI书签的创建 ?实现AOI书签的调用 1.3实验步骤与结果 安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。 1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码; (1)首先添加引用代码:using ESRI.ArcGIS.Display; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.ADF; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesRaster; (此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用) (2)添加“创建书签”函数 在MainForm类中添加成员函数CreateBookMark,代码如下: public void CreateBookmark(string sBookmarkName)//参数为书签名 { //通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass(); if (aoiBookmark != null) { aoiBookmark.Location = axMapControl1.ActiveView.Extent;

GIS系统设计文档案例

《合肥市旅游地理信息系统》 设计说明书 作者:合肥工业大学资源环境工程学院地理信息系统07级 应用开发AHC002组

目录: 1 可行性分析 (4) 1.1 引言 (4) 1.1.1编写目的 (4) 1.1.2项目背景 (4) 1.1.3参考资料 (4) 1.2 可行性研究前提 (4) 1.3对现有系统分析 (5) 2 需求分析 (8) 2.1 编写目的 (8) 2.2 系统的描述 (8) 2.3 主要功能模块 (8) 2.4 用户业务现状分析 (8) 2.5具体要求 (8) 3 解决思路 (10) 4总体设计(及系统设计) (11) 5 功能设计 (12) 6 数据库设计...................................... 错误!未定义书签。18 7系统设计亮错误!未定义书签。点 (23) 8用户手册 (2) 4

1 可行性分析 1.1 引言 1.1.1编写目的 开发人员对合肥市旅游管理系统的可行性进行研究;旅客和旅行社管理者对合肥市旅游管理系统的可行性进行了解,以助于他们更了解该软件。 1.1.2项目背景 a.软件系统的名称:合肥市旅游地理信息系统; b.本项目的任务提出者:黄家政; c.开发者:黄家政、翟婧、翟辉凯; d.开发环境:Visual studio 2008,Arc engine9.3,ArcGis 9.3。 1.1.3参考资料 [1]黄杏元.地理信息系统概论(修订版)[M].北京:高等教育出版社.2001 [2]王珊.数据库系统概论(第四版)[M].北京:高等教育出版社.2006 [3] C#.NET课程设计指导[M].北京:北京大学出版社.2007 [4] AE开发教程 1.2可行性研究前提 了解旅游人员在考虑出游和进行出游过程中的需要,以及来到陌生旅游景点后会遇到的问题;了解旅行社管理人员对旅客分布信息,交通信息,景点信息的需要,针对这 些要求开发系统。 A.要求: 能够对合肥市的道路进行公交查询、最短路径查询、景区查询等GIS功能; B.目标: 合肥市旅游地理信息系统,要求能够为游客们提供合肥市的道路信息、景区信息、旅馆酒店信息和购物逛街信息等,以方便游客的旅游活动。同时能为旅行社管理人员 提供游客出行分布信息、游客意见等,给旅行社提供辅助决策功能; C.条件、假设和限制 由于时间比较紧张,少许功能还没来得及开发出来,需要后期继续跟进开发;在技术方面,由于我们对engine的掌握只是略懂皮毛,所以只能调用Arcgis中的一些组 建来完成系统的开发,所以后续开发需要更深入的了解engine,掌握engine,实现优 秀旅游gis系统的开发。 D.进行可行性研究的方法 前期在网络上先进行网络问卷调查,初步了解人们对旅游信息方面的需要和建议,同时我们走访了几家合肥的旅行社,了解他们对我们的系统的建议和要求。而后,我们

gis软件开发

《gis软件开发》(2013-2014学年第二学期) 专业:地理信息科学 姓名:李金超

姓名:1126104252 实验人:李金超 实验时间:2014年6月3日---2014年6月12日 实验目的:(1)了解和掌握基于ArcGIS平台和.NET编程环境进行GIS二次开发的基础知识。 (2)熟悉vs软件,建立ArcGIS Engine 应用程序框架,实现地图浏览和添加shp数据和实现窗口联动的功能。 实验环境:在Windows XP环境下,使用C#语言,在Visual Studio 2010中进行GIS软件设计开发,程序的编程。 实验内容: 实验原理:(1)Visual studio 2010(简称VS)是一个基本完整的开发工具集,它包括整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境等。本实验使用Visual Studio 2010版本。VS是使用C#语言进行程序编码的良好开发环境,对C#语言和。 (2)ArcGIS Engine是ArcObjects组件跨平台应用的核心集合,它提供多种开发的接口,可以适应C++等开发环境。开发者可以使用这些组件来开发定制的GIS和地图应用。 (3)使用ArcGIS Engine在Visual studio 环境中二次开发GIS程序,可以使用程序创建向导来建立开发程序的框架,并在Visual studio 集成开发环境中使用ArcGIS Engine 提供的控件来建立基于窗体的应用程序,同时添加ArcGIS Engine组件并基于组件编写GIS应用系统。 实验步骤:

1、新建项目 启动VS2010,选择“文件|新建|项目”,在项目类型中选择Visual C#,再选择Windows 应用程序模板,输入名称“My Map”,点击确定。 2、添加控件 选择工具箱中的“菜单和工具栏|StatusStrip(状态栏)”,将其拖入到窗体。 选择工具箱中的“ArcGIS Windows Forms”节,将“AxToolbarControl”控件拖入窗体,并将其属性中的Dock 设置为Top。 选择工具箱中的“容器|SplitContainer(容器)”拖入窗体,并将其属性中的Dock 设置为Fill。将TabControl 控件拖入Panel1,将Alignment 属性设置为Bottom,Dock 属性设置为Fill。点击TabPages 属性右边的按钮,弹出TabPage 集合编辑器,将tabPage1 的Name 设置为“Layer”,Text 设置为“图层”;将tabPage2 的Name 设置为“Property”,Text 设置为“属性”。如下所示:

gis二次开发能实现那些功能

第一题:GIS二次开发能实现那些功能? 符号化显示全要素地图 对图层的的管理和操作 支持地图放大,缩小漫游等各种操作 可以对地图进行标注 可以实现几何参数查询,空间定位查询等功能 空间分析功能 空间数据库访问功能 地图打印功能 GPS导航功能 第二题,MO做专题地图有哪几种? 标注渲染,按值渲染,点密度渲染,分类渲染,图表渲染,z值渲染,组渲染 建立缓冲区查找缓冲区的城市代码: Dim dc As New MapObjects2.DataConnection '定义一个数据连接对象 Dim lyr As New MapObjects2.MapLayer '定义一个数据图层对象 Dim fname As String Dim fnames() As String '定义了一个字符数组 Dim rectline As MapObjects2.Recordset '定义一个数据集对象 Dim resutstate As MapObjects2.Recordset Dim resultshape As MapObjects2.Polygon Dim flag As Integer Dim fname2 As String Dim max As Integer Dim flagitem As Integer Dim intersetj As MapObjects2.Polygon Dim k As MapObjects2.Polygon Dim setflash(100) As MapObjects2.Polygon '足条件的记录,用于后面的闪烁Dim freset(100) As String '记录满足条件的记录州名Dim jilu As Integer '统计满足条件的记录个数 Private Sub Combo1_Click() fname2 = Combo1.Text '在组合框的单机事件中完成的任务为: For i = 0 To max '用户选中组合框中的图层名,通过循环使其与fnames(i)保存的 If fnames(i) = fname2 Then '图层名进行对比查找,如果找到就将图层索引保存到flagitem中 flagitem = max - i '通过变量flagitem将地图索引传给函数https://www.doczj.com/doc/9513897364.html,yers(flagitem).SearchByDistance(p, Map1.ToMapDistance(100), "") Exit For '目的是在用户选择的图层中找到用户选中的图形 End If

基于WebGIS旅游信息系统设计

基于WebGIS旅游信息系统设计 王娟 (贵州贵阳550025 贵州省第一测绘院) 摘要:Internet是当今获取信息和知识不可缺少的手段和途径,在交通和旅游方面显得尤为重要。分析了WebGIS(万维网地理信息系统)技术的特点和实现方法,论述了它与旅游信息化相结合的必要性和可行性,同时提出了在Internet上实现旅游信息系统的解决方案。 关键词:WebGIS、地理信息系统(GIS)、旅游信息系统。 1、引言 21世纪是信息经济的时代,在信息社会里起决定作用的不是资本,而是信息知识。随着经济的发展,人们生活水平的提高和闲暇时间的增多,旅游活动已成为人们生活中的重要组成部分。在信息社会里,旅游者获取旅游信息的渠道除了传统方式(广播、电视、报刊杂志等),更多的旅游者则借助于互联网(Internet)来寻找自己所需要的旅游信息。传统式与网络式相比,不仅渠道少、速度慢、成本高.且不确定性大,而网络获取旅游信息的方式不仅速度快、信息量大、内容新,而且费用低廉,深受广大中青年旅游者的喜爱和青睐。据统计,全球旅游电子商务连续5年以350%以上的速度发展.从某种意义上来说,旅游信息的传播速度和共享程度已成为促进旅游业快速发展的关键因素。 2、网络旅游信息系统的设计 系统性能是评定WebGIS系统的一个重要指标。对于性能的评定主要可以从多用户并发访问的效率、系统的响应速度、系统的稳定性、系统处理大数据量时的效率等方面进行。由于旅游信息系统是一个面向公众的查询系统,访问的人数多,为了提高通用测览的支持度,加快网络数据的传输速度,我们选择基于ASP技术的WebGIS来实现。ASP(Active Server Pages)是Microsoft公司提出的一种动态站点技术,同时也是一个“服务器端脚本编写环境”,它可用于创建和运行动态的交互式Web服务器应用程序。采用ASP技术实现webGIS还有以下优势:①由于送给客户端的是标准HTML文件,因此不存在浏览器不兼容的问题;②编写容易,web程序开发时间较短,利于快速建站;③存取数据库容易;④无代码泄漏问题。 2.1 系统总体框架结构 系统采用三层应用结构,三层由表示层、应用逻辑层和数据层组成,具体实现中三层分别为客户机、应用服务器和数据服务器。该系统的总体结构图如图1所示 图1 系统总体结构图 2.2 系统总体结构分析 (1)表示层设计:表示层的设计主要围绕GIS组件进行,客户端浏览器层的平台是Windows98(以上),采用通用的HTML浏览器,浏览器向Web服务器发送HTTP请求,Web 服务器响应客户机的请求,返回请求的HTML页面,客户机下载GIS组件,在客户机上注册安装成功后,在浏览器中运行。同时用户还可以在客户端进行简单的交互操作。 (2)逻辑层设计:该层是整个系统设计的核心,起着中间层的作用,在系统中即是Web服务器,Web服务器负责处理客户机的HTTP请求,下载GIS组件及加载空间数据等,最后把处理的结果数据通过Web服务器传给客户端。 (3)数据层设计:数据服务器层包括GIS服务器和商业服务器,其中对关系型数据的管理采用Microsoft SQL Server 2000数据库服务器。 ①GIS服务器主要负责管理相关的空间数据和属性数据,当GIS服务器接受到Web服务器传来的处理任务后,利用GIS服务器上的GIS组件所提供的各项功能,进行数据的提取、分

GIS在旅游线路设计中的应用(定稿)总结

1绪论 1.1 研究背景 作为朝阳型的世界第一大产业,旅游业越来越受到人们的亲睐,数十年来全球旅游业实现了持续发展。来自世贸组织的预测,在21世纪初中国将成为世界上最大的旅游国。而到2020年,中国入境旅游的人数就将达1.37亿人次,对如此巨大的旅游流的研究也显得具有极大的紧迫性和必要性。其实科技的不断发展,也使得地理学研究的各个方面都需要有新技术融入,尤其是如此蓬勃的旅游业。旅游流研究中海量的数据反映出的丰富信息以及各景区景点间的联系和动态变化资料需要GIS技术的支撑和协调。建立一个专门研究中国旅游景区整体规划的地理信息系统能从定量、动态等方面进行综合分析处理,把各种地理信息数据转换成支持决策的科学根据。 人类用来纪录各种空间现象的主要工具之一,地图对于人类的生产生活实在是不可忽视。经过长时间的经验累积,人类都是按照惯用的使用方法及使用型态来使用地图;不再是用纸张来而是电子讯号来传递信息的电子地图,有着许多传统地图无法达到的优势,例如:查询分析,路径规划等。再次基础上结合计算机的发展,地理信息系统(GIS)即应运而生。 虽然早在50年前加拿大地理信息系统(CGIS)就已经开始运作,但在早期,其主要的工作平台也都是价钱昂贵的工作站计算机,极高的软硬件价位也使得小老百姓望而却步,只有政府或大型研究机构才能负担,这使得多年来GIS始终定位在专业用途上;就连操作人员,也必须经过多年训练的专业人才才能胜任各项工作。可叹的是近十年来的发展,使用者计算机接口及软硬件功能的进步使得地理信息系统已经可以很方便地在个人计算机上安装,经过短期训练的人员也可以加以操作。 1.2 国内外研究现状 信息技术在第一届信息技术与旅游国际会议上被认为是现代旅游业发展与提高竞争力的一个决定性的因素。例如分布式旅游目的地数据库会对

GIS二次开发经典代码

1、保存栅格数据(注意:保存的时候不要忘记要将栅格数据保存到栅格数据集工作空间中,同时还有栅格的扩展名一定要加上。)内容来自GIS公园 Public Sub SaveRaster() Dim pMxDoc As IMxDocument Dim pMap As IMap Set pMxDoc = Application.Document Set pMap = pMxDoc.FocusMap pMap.DeleteLayer https://www.doczj.com/doc/9513897364.html,yer(0) Dim pRasterDataset As IRasterDataset Dim pWks As IRasterWorkspace Dim pWksFact As IWorkspaceFactory Set pWksFact = New RasterWorkspaceFactory Set pWks = pWksFact.OpenFromFile("D:\Projects\ZLS\temp", 0) Dim pRBC As IRasterBandCollection Set pRasterDataset = pWks.OpenRasterDataset("test") 'Dim pRBC As IRasterBandCollection Dim pRLayer As IRasterLayer Set pRLayer = New RasterLayer pRLayer.CreateFromDataset pRasterDataset Dim pRaster As IRaster Set pRaster = pRLayer.Raster Set pRBC = pRaster Dim pDs As IDataset Set pDs = pRBC.SaveAs("test", pWks, "TIFF") copyright https://www.doczj.com/doc/9513897364.html, pMap.AddLayer pRLayer End Sub 2、根据已有数据字段,创建shape文件,并将数据插入到shape文件中(delphi代码)GIS公园https://www.doczj.com/doc/9513897364.html, function CreateNewShape(pCursor: IFeatureCursor; pFCls: IFeatureClass; pPath: WideString; pNewFClsName:WideString): IFeatureClass; var pShapeFieldName, ConfigKeyword: WideString; pNewFCls: IFeatureClass; pFeature: IFeature; pNewFCursor: IFeatureCursor;

GIS设计与实现课程设计

目录 1.设计背景:................................................................................................................ 2.设计目标.................................................................................................................... 设计原则与设计方法...................................................................................................... 1.设计原则:................................................................................................................ 设计方法.......................................................................................................................... 三、需求分析(系统定义).......................................................................................... 1.系统设计的方法........................................................................................................ 2.系统定义:................................................................................................................ 四、系统设计(系统结构体系、模块设计).............................................................. 结构体系设计:.............................................................................................................. 2.系统模块设计:........................................................................................................ 五、数据库设计.............................................................................................................. 1.概述............................................................................................................................ 2.需求分析.................................................................................................................... 3.概念设计.................................................................................................................... 4.逻辑模型.................................................................................................................... 5.物理设计.................................................................................................................... 6.数据字典设计............................................................................................................ 六、系统实施计划.......................................................................................................... 七、总结.......................................................................................................................... 设计背景与目标 1.设计背景: 随着现代社会的发展,大学校园的规模日益扩展,传统的管理方法显得力不从心,为了提高效率,节省物力人力资源,大学校园的管理也将逐步实现现代信息化管理。而地理信息系统(一种基于空间数据库的空间信息处理与分析技术,已被广泛应用于市政、交通、电信、军事和旅游等领域,具有极其广泛的应用前景,从地理关系的角度分析和解决与地理信息有关的问题往往会得到意想不到的效果。)技术的发展恰好迎合了这个需求,可以为大学校园的数字化、信息化管理提供相应的技术支持,大学校园多媒体管理系统应运而生。我校虽然已经有了较完善的校园多媒体管理系统,但是身为我校地理信息系统专业的学生,专业相关的课程设计选择这个题目显得更有意义,特建立我校的空间管理GIS系统。 2.设计目标 要求包括道路及道路基本信息、建筑基本信息、校园特殊标记的空间数

《GIS二次开发》课程设计报告

《GIS二次开发课程设计》报告

目录 1 设计目标 (1) 2 需求分析 (1) 2.1 业务构成... .. (1) 2.2 数据内容... .. (1) 3 系统设计 (1) 3.1 总体设计 (1) 3.2 数据库设计 (2) 3.3 平台选择 (2) 3.4 详细设计 (2) 4 功能实现 (3) 4.1 基本功能 (3) 4.2 符号化 (3) 小结 ............................ 错误!未定义书签。

1 设计目标 通过本系统的实施,建立全国各省人口分布和人均GDP排名系统,通过各种地图符号和色彩信息,将地图数据符号化,借此来制作全国各省人口比重、贫富差距大小等专题图。 2 需求分析 2.1 业务构成 中国人口在世界各国中位居首位,约占世界总人口的19%,根据2015年1月20日国家统计局网站公布2014年中国经济数据,2014年末,中国大陆总人口达136782万人,比上年末增加710万人。其中,男性人口70079万人,女性人口66703万人,男性人口比女性多3376万人。中国是人口大国,因此中国的人口分布情况和人口管理显得至关重要。 随着经济的发展,中国的经济状况日益增强。但是整体而言贫富差距还是很大,所以将地图数据符号化来更好地分析各地区的人均GDP对国家掌控各地经济情况是十分有用的。 2.2 数据内容 数据主要包括全国各省的人口数量、总的GDP和人均GDP。通过这些数据来处理地图,将地图做成不同属性的专题图。 3 系统设计 3.1 总体设计 此次设计的初衷即是开发一个可以制作专题地图的系统。以全国

人口数量和全国各省人均GDP为例进行制作和开发。 第一步就是找全国省区底图;接着找所需数据(全国各省人口数量和全国各省人均GDP。)最后,通过VS设计系统,实现专题图制作功能。 3.2 数据库设计 刚开始是想将找到的数据以表格的形式导入arccatalog中,希望经过处理可以直接使用,但是做到最后发现并不能将表格直接导入底图。解决办法是在arcmap中编辑底图的属性表将找到的数据输入,保存。 还有就是在用VS系统开发时的登录界面时,用到sqlserver。 在sqlserver中创建数据库,在已创建的数据库中创建表格,表格中输入“用户名”和“密码”相关信息。 3.3 平台选择 系统开发平台:VS2010和arcengine。 3.4 详细设计 1、首先设计登录界面:登录界面加入所需控件。

GIS软件开发技术

第一章MapObjects基础Gis常用开发平台 MapObjects简介 ?MapObjects功能 ?MapObjects优点 ?MapObjects基础 编程规范

01、Gis软件开发常用开发平台 常用开发平台的比较: VB:较易入门 VBA:对于扩充原有功能较好。如AutoCAD、ArcMap中的VBA。开发效率最高的一种开发方式(常常是一个语名即可实现其它开发工具要几十甚至上百行的代码才能实现的功能)。缺点是所开发出的应用程序不能脱离相应的运行环境。(如在ArcMap中开发的应用程序,必须先要安装ArcMap) VC++:较为灵活,开发资料众多。可实现对系统的全面操作。缺点是学习起来较难,所开发出的应用程序常常会产生难以预计的错误。(如内存泄露等) Delphi:可扩充性最好,现已有上万个带源码的控件可供使用,几乎涉及到各各方面。如数据库控件InfoPower3000、OpenGL控件GLScene,工业控制控件等。 GIS组件简介: MapObjects:ESRI 1、可实现功能: 2、可使用的数据 ArcView Gis Shapefiles:创建新层、读写数据,添加删除记录与几何要素 ArcSDE:不能创建新层 Arcinfo Coverages:只读 CAD格式及VPF数据库:只读(Vector Product Format是一种标准的基于空间关 系数据模型的大型空间数据库的格式、结构与组织。是美国国防部的标准) 外部数据库:只读 ArcObjects:ESRI MapX:Mapinfo Supermap:中科院地理所

一般用户(大多数用户)关心的问题:应用程序的运行速度与稳定性。不关心所采用的开发工具及内部实现方式。只有特殊用户(少量用户)考虑与原有系统的兼容性才关心开发平台。 软件开发中应注意的问题: 代码的规范性:1、命名约定2、代码缩进3、逻辑关系的排列次序 对于较为普通的问题尽量使用较常见的解决方式。尽量不使用较为古怪的技巧(如:两数的交换),这样会降低代码的可读性。 Delphi开发环境简介: 1、数据库应用 2、OpenGL应用 3、报表制作

GIS地理信息与二次开发专业面试宝典(130912)

GIS地理信息系统与二次开发专业面试宝典 一、简述题 1、什么是GIS: GIS(geographic information system),即地理信息系统,是利用现代计算机图形技术和数据库技术,输入、存储、编辑、分析、显示空间信息及其属性信息的地理资料系统。在地GIS信息数据分两大类:第一类是地图数据,即图形数据。第二类是属性信息,即属性数据(也可称为文字数据,非图形数据)。通过GIS 系统这两类信息的特有管理方式,在它们之间建立双向对应关系,实现图形和数据的互查互用。 2、GIS与CAD系统的区别: 首先,GIS 是图形和属性的结合体,而CAD 是单纯的图形,很难和大数据量的属性信息关联;其次,GIS 中的图形有拓扑信息,可以进行各种复杂的空间分析,而CAD 图形要素之间的关系是松散的,没有空间的概念;再次,GIS 可以做多种基于图形或属性的查询统计,也能制作各种表现形式的专题图,而CAD 一般不能;最后,GIS 能理大数据量,甚至是高达数十G 的海量数据,也能读写存储于数据库中的空间图形,而CAD 不能。 二、名词解释 3.地理参考系统(geographic Coordinate system):地理信息包含有明确的地理参照系统,例如经度和纬度坐标,或者是国家网格坐标。 4.地图投影:地图投影就是指建立地球表面上的点与投影平面上点之间一一对应关系的数学方法。地图投影是解决地球椭球面上地物绘制到平面图纸上的问题。 5. 空间分析:是基于空间对象的位置和形态特征的空间数据分析技术。常见的有拓扑叠加分析、缓冲区分析、网格分析和地形分析等。

6.1954 年北京坐标系Beijing Geodetic Coordinate System l9541954 年我国决定采用的国家大地坐标系,实质上是由原苏联普尔科沃为原点1942 年坐标系的延伸。 7.1956 年黄海高程系统Huang hai Vertical Datum l956以青岛验潮站根据1950 年一1956 年的验潮资料计算确定的平均海面作为基准面,据以计算地面点高程的系统。 8.1985 国家高程基准National Vertical Datum 1985:1987 年颁布命名的,以青岛验潮站1952 年一1979 年验潮资料计算确定的平均海面作为基准面的高程基准。 9.WGS-84 坐标系WGS-84 Coordinate System: 一种国际上采用的地心坐标系。坐标原点为地球质心,称为1984 年世界大地坐标系统。 10.城市地理信息Urban Geographic lnformation: 城市地理信息是城市中一切与地理分布有关的各种地理要素图形信息、属性信息及其相互间空间关系信息的总称。 11. 城市基础地理信息Urban FundamentaI Geographic lnformation: 城市基础地理信息是指城市最基本的地理信息,包括各种平面和高程控制点、界址点、建筑物、道路、水系、境界、地形、植被、地名及某些属性信息等,用于表示城市基本面貌并作为各种专题信息空间定位的载体。它具有统一性、精确性和基础性的特点。 12.等高线contour: 地图上地面高程相等的相邻点所连成的曲线在平面上的投影。

旅游gis系统设计方案

1 可行性分析 1.1 引言 1.1.1编写目的 开发人员对合肥市旅游管理系统的可行性进行研究;旅客和旅行社管理者对合肥市旅游管理系统的可行性进行了解,以助于他们更了解该软件。 1.1.2项目背景 a.软件系统的名称:合肥市旅游地理信息系统; b.本项目的任务提出者:黄家政; c.开发者:黄家政、翟婧、翟辉凯; d.开发环境:Visual studio 2008,Arc engine9.3,ArcGis 9.3。 1.1.3参考资料 [1]黄杏元.地理信息系统概论(修订版)[M].北京:高等教育出版社.2001 [2]王珊.数据库系统概论(第四版)[M].北京:高等教育出版社.2006 [3]C#.NET课程设计指导[M].北京:北京大学出版社.2007 [4]AE开发教程 1.2可行性研究前提 了解旅游人员在考虑出游和进行出游过程中的需要,以及来到陌生旅游景点后会遇

到的问题;了解旅行社管理人员对旅客分布信息,交通信息,景点信息的需要,针对这些要求开发系统。 A.要求: 能够对合肥市的道路进行公交查询、最短路径查询、景区查询等GIS功能; B.目标: 合肥市旅游地理信息系统,要求能够为游客们提供合肥市的道路信息、景区信息、旅馆酒店信息和购物逛街信息等,以方便游客的旅游活动。同时能为旅行社管理人员提供游客出行分布信息、游客意见等,给旅行社提供辅助决策功能; C.条件、假设和限制 由于时间比较紧张,少许功能还没来得及开发出来,需要后期继续跟进开发;在技术方面,由于我们对engine的掌握只是略懂皮毛,所以只能调用Arcgis中的一些组建来完成系统的开发,所以后续开发需要更深入的了解engine,掌握engine,实现优秀旅游gis系统的开发。 D.进行可行性研究的方法 前期在网络上先进行网络问卷调查,初步了解人们对旅游信息方面的需要和建议,同时我们走访了几家合肥的旅行社,了解他们对我们的系统的建议和要求。而后,我们对这些信息进行总结,并有针对性的开发系统。 E评价尺度 以游客的视角体验我们系统的方便快捷性,以旅行社管理者的视角体验我们系统的方便可靠性。 1.3对现有系统分析

易图地理信息系统技术方案说明书

易图(EaseMap)地理信息系统技术方案说明书 (文档版本 系统设计:______ ________ 系统审核:_______________________ 监理代表:______ _________ 日期:___ _____ _____________________________________ 阿凯日软件工作室2009年10月

1易图地理信息系统架构 易图地理信息系统由四大部分组成,其中包括SQL Server数据库、易图数据管理器(EaseMap Manager)、易图地理信息系统网络版(EaseMapNet)和易图地理信息系统单机版(EaseMap)。 1.1SQL Server数据库 该数据库主要是对卫星影像数据和矢量数据的存储,供客户端查询和浏览和编辑不包含业务数据。 1.2易图数据库配置管理器 该管理系统,主要针对卫星影像数据和矢量数据的导入控制、导出控制和矢量图层的图例配置等。 1.3易图地理信息系统网络版 该软件基于数据库浏览和检索数据,具备最基本的GIS功能,任何项目的业务功能,均可以基于该平台进行功能扩展和开发,适合于城市规划、城市管网、电力、水利、通信、地质勘察、公安消防、交通公交、科研教育、绿化环保和监控等各行各业。

终端 1.4易图地理信息系统单机版 易图地理信息系统单机版功能与网络版基本相同,所不同的是该版本不需要数据库的支持,但卫星影像可以由数据管理器导出一组影像缓存文件(包括*.dat 和*.idx)作为图层加入到系统中,可以实现离线浏览,为外出作业和旅游导航提供完美的解决方案。

从数据管理器导出影像缓存文件(*.dat,*.idx) 2SQL Server数据库(易图后台数据库设计) 2.1卫星地图数据结构 谷歌卫星地图数据采用默卡托投方式,以经度为0度和纬度为0度为中心、西边-180度、东边180度、北边约85度和南边约-85度的范围将世界地图约束成一个正矩形,然后再按的比率的四叉树分割原理将整个世界地图层层分割,共20级。 如下图所示,其中以代码t表示第一级,然后基于第一级开始往下细分,如第二级分别以tq表示左上、tr表示右上、ts表示右下、tt表示左下;第三级分别将tq、tr、ts和tt再按q、r、s、t分别进行细分,即tq分为tqq、tqr、

arcgis 二次开发

gis的开发方法有三种,即独立开发,宿主型二次开发,基于gis组件的二次开发,其中独立开发为底层开发,不依赖于任何gis工具软件,开发难度太大,后两者是基于一种软件的二次开发,这样的二次开发则相对较简单,他的好处也是显而易见的。 宿主型二次开发是指基于GIS平台软件上进行应用系统开发。大多数GIS 平台软件都提供了可供用户进行二次开发的脚本语言,如ESRI的ArcView提供 了Avenue语言,Maplnfo公司的MapInfo Professional提供了MapBasic语言 等等。用户可以利用这些脚本语言,以原GIS软件为开发平台,开发出自己的 针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的脚本语言, 作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发 的系统不能脱离GIS平台软件,是解释执行的,效率不高。相比基于组件的二次开发可以根据自己的需要扩展系统的功能,并且可以脱离原gis平台软件,综合看来,单纯二次开发受gis基础平台提供的编程语言的限制,而基于组件式的二次开发不仅能提高开发效率,同时可靠性好,易于移植,便于维护。所以,结合gis基础平台软件与当今可视化开发语言的组件式二次开发成为gis开发的主流。但是二次开发也不是十全十美的,只要我们使其中的瑕疵减少,误差也就会减少。 ArcGIS Engine开发工具包是一个基于组件的软件开发产品,用于建立和部署自定义GIS和制图应用程序。ArcGIS Engine开发工具包不是一个终端用户产品,而是一个应用程序开发人员的工具包。可以用ArcGIS Engine开发工具包建立基本的地图浏览器或综合、动态的GIS编辑工具。使用ArcGIS Engine开发工具包,开发人员在建立定制的地图接口方面具有前所未有的灵活性。开发人员可以使用几个API中的任何一个来建立独一无二的应用程序,或者将ArcGIS Engine组件与其他软件组件组合起来实现地图与用户管理信息之间的协同关系。 (可选资料) 从第一个GIS系统一加拿大地理信息系统(CGIS)到目前用户可以自己定制 的GIS系统,GIS二次开发经历了巨大的变化。在这个发展过程中主要出现了两 种GIS二次方式,即宿主型二次开发和基于GIS组件的二次开发131。 GIS开发过程中常用的两种构架(c/s和B/S) 基于c/s结构的GIS是 由客户机完成GIS分析、输出工作。GIS数据和分析工具最初放在服务器上,运 行时下载到客户机,操作灵活。但是c/s应用软件模式大都是基于“胖客户机” 结构下的两层结构应用软件。客户端软件一般由应用程序及相应的数据库连接程 序组成,服务器端软件一般是某种数据库系统。客户机端软件的主要功能是处理 与用户的交互、按照某种应用逻辑实现与数据库系统的交互;服务器端软件的主 要功能是数据库系统根据客户端软件的请求进行数据库操作,然后将结果传送到 客户端软件。客户端软件与服务器端软件之问的通信主要是通过SQL语句。两层 C/S结构应用软件的开发工作主要集中在客户端,客户端端软件不但要完成用户

相关主题
文本预览
相关文档 最新文档