当前位置:首页 >> 信息与通信 >>

利用ArcGIS软件地理信息系统设计与实现


地理信息系统设计与实现
------利用 ------利用 ArcGIS 软件

指导老师: 指导老师:****** 实习成员: 实习成员: Tphxmx 实习时间: 实习时间:2006.7.20—2006.8.3

目录
1. 实习目的: .......................................

.................................................................................................... 3 2. 实习工具和环境: .................................................................................................................................. 3 3. 实习内容: ........................................................................................................................................... 3 一, 基于 ArcGIS 平台的空间数据库设计与建立 ............................................................................. 3 1 新建地理数据库 ................................................................................................................... 3 2 图层分类设计 ....................................................................................................................... 4 3 空间数据库逻辑结构设计 ................................................................................................... 4 4 空间数据库物理结构设计与实现 ....................................................................................... 4 5 空间数据库地理参考系统的设置与坐标转换方法 ........................................................... 5 6 空间几何信息入库;实体相关属性入库 ........................................................................... 5 1) 配准 ....................................................................................................................................... 5 2) 特征提取 ............................................................................................................................... 5 3) 属性添加 ............................................................................................................................... 5 二, ArcMap 定制二次开发 ................................................................................................................. 8 菜单定制: ....................................................................................................................................... 8 工具条定制: ................................................................................................................................... 8 1. 利用 Customize 对话框添加工具条 ................................................................................... 8 2. 利用宏定制工具条 Tools Macros 在 Macros 对话框定制宏并编辑功能 ................... 9

3. 例 1.简单实现放大缩小,返回上一级,标记要素,打开 layer 图层等...................... 11 4. 例 2.构建逻辑表达式查询空间几何对象 ........................................................................ 12 4.实习总结: (**************)………………………………………………………………………..17

1. 实习目的: 实习目的:
学习 ArcGIS 软件及其组成部分,并能灵活应用. 学习定制自己的工作空间,高效率的完成工作. 学习利用 ArcCatalog 建立地理信息数据库,属性入库. 学习利用 VBA 环境做简单的二次开发.

2. 实习工具和环境: 实习工具和环境 具和环境
工具:ArcMap,ArcCatalog 硬件环境:Microsoft Windows XP Professional 2002

3.

实习内容: 实习内容:
基于 ArcGIS 平台的空间数据库设计与建立

一,

实习目的: 学习应用 ArcGIS 软件处理地理信息系统问题,学会使用 ArcCatalog 与 ArcMap. 步骤:

1 新建地理数据库
在 ArcCatalog 中建立如下的地理数据库

为个人数据库添加类和要素,属性 根据 《成都市交通运输图》 的地图的要素和类,把地图分为河流,道路,行政区域和边 界,为每一个要素建一个表,选择坐标系统和添加要素的属性,结果图如下:

2 图层分类设计
河流:面状河流,线状河流 行政区:行政中心,行政区域,运输中心 道路:公路,铁路

3 空间数据库逻辑结构设计
面状河流:ployonriver 属性 name 线状河流 shpriver 属性 name 行政区域 xingzhengquyu 属性 Maxnumber,Minnumber,name 行政中心 xingzhengzhongxin 属性 name 运输中心 yunshuzhongxin 属性 name 公路 gonglu 属性 name,Maxliuliang,Minliuliang 铁路 tielu 属性 name

4 空间数据库物理结构设计与实现
在 ArcCatalog 建库,建类,建要素,选择坐标系,添加属性,过程如下所示

5 空间数据库地理参考系统的设置与坐标转换方法
坐标投影采用高斯投影中的北京 54(17 带)投影坐标系

空间几何信息入库; 6 空间几何信息入库;实体相关属性入库
将地图导入 ArcMAP 中进行校正,直到在误差的可允许范围之内.导入建好的 数据库,然后开始分要素进行数字化,结果如图所示 1) 配准 配准:当载入 bmp 格式的成都市交通运输图时需要给地图进行配坐标系,选择坐 (17 带) 投影坐标系,添加四个控制点保证误差在 10m 以内., 标系为 高斯投影中的北京 54
单击 Georeferencing->rectify 进行配准.

2) 特征提取 特征提取:载入《成都市交通图.mdb》数据库,利用 Arcmap 中的

3) 4)

选择相应图层矢量化并保存结果(即几何信息入库) 属性添加: 属性添加 选中点,线或面状目标,右击,选择 Attributes,弹出 Attributes 对话框,在
对话框中设置目标的属性.(注释:自动生成的属性无法修改)

整饰地图:标记地图要素,修改要素符号,线条,改变要素颜色以便更好逼真的显示地
图 标记地图要素,修改要素符号,线条

.右击要改变属性的图层,在 Layer Properties 对话框里可以全方面修改图层的显示特性还可以 设置简单的查询,连接等功能,更好的表现图层的属性

依比例显示地图:

7.地图数字化结果: 7.地图数字化结果: 地图数字化结果

二, ArcMap 定制二次开发
目的:学习制作自己的软件界面,学习基于 ArcGIS 平台的 GIS 项目的建
立与实现的流程,学习简单的 ArcMap 二次定制开发. 实习步骤: (1)菜单定制(2)工具条定制(3)查询

菜单定制: 菜单定制:
包括汉化,屏蔽一些功 能,分组,向采单条添加新 的功能. Tools Customize,然后 右键点击要汉化的菜单名, 实现上面的功能 在 Customize 对话框选 择相应的菜单条,把直接拖 到采单条可以实现添加,拖 动到 Customize 可以实现删 除

工具条定制: 工具条定制:
包括工具条的增删和用宏定制工具条 1. 利用 Customize 对话框添加工具条

2. 利用宏定制工具条 Tools Macros 在 Macros 对话框定制宏并编辑 功能
例证:一个表示放大功能的宏示例如下

通过 Customize Commands Macros- Commands 往工具条里面添加功能,可以改变 标签的符号,颜色,实现分组等功能

用界面的方式实现简单查询放大,缩小和查询功能

设计步骤:Tools Customize Commands UIControls

单击 Create and Edit 按钮进入 VBA 编程环境

如图所示添加一个用户界面,就可以开始实现功能了

3. 例 1.简单实现放大缩小,返回上一级,标记要素,打开 layer 图 1.简单实现放大缩小,返回上一级,标记要素, 简单实现放大缩小 层等
界面如下

程序如下: 实现放大功能的代码
Private Sub CommandButton1_Click() Dim pDoc As IMxDocument

Dim pEnv As IEnvelope Set pDoc = ThisDocument Set pEnv = pDoc.ActiveView.Extent pEnv.Expand 0.5, 0.5, True

pDoc.ActiveView.Extent = pEnv pDoc.ActiveView.Refresh End Sub

Dim pGxLayer As IGxLayer Dim pGxFile As IGxFile Set pGxLayer = New GxLayer Set pGxFile = pGxLayer pGxFile.Path = filePath Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument pMxDoc.FocusMap.AddLayer pGxLayer.Layer End Sub

实现缩小功能的代码
Private Sub CommandButton2_Click() Dim pDoc As IMxDocument Dim pEnv As IEnvelope Set pDoc = ThisDocument Set pEnv = pDoc.ActiveView.Extent pEnv.Expand 2, 2, True pDoc.ActiveView.Extent = pEnv pDoc.ActiveView.Refresh End Sub

添加图层的代码
Private Sub CommandButton5_Click() Dim pMxDoc As IMxDocument Dim pGraphicsContainer IGraphicsContainer Dim pActiveView As IActiveView Dim pTextElement As ITextElement Dim pElement As IElement

返回上一层代码
Private Sub CommandButton3_Click() 'macro:FullExtentPlus Dim IntAns As Integer Dim PItem As ICommandItem With ThisDocument.CommandBars Set PItem = .Find(ArcID.PanZoom_FullExtent) IntAns = MsgBox("Zoom to previous extent?", vbYesNo) If IntAns = vbYes Then Set PItem = .Find(ArcID.PanZoom_ZoomToLastExtentBa ck) PItem.Execute Else End If End With End Sub

As

Set pMxDoc = Application.Document Set pGraphicsContainer = pMxDoc.FocusMap Set pActiveView = pMxDoc.FocusMap Set pTextElement = New TextElement Set pElement = pTextElement pTextElement.Text = "X marks the spot" pElement.Geometry = pActiveView.ScreenDisplay.DisplayTransfo rmation.ToMapPoint(X, Y) pGraphicsContainer.AddElement pTextElement, 0 pActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing End Sub

标记要素的代码
Private Sub CommandButton4_Click() Dim filePath As String filePath = "c:\arcgis\arcexe83\ArcObjects Developer Kit\samples\data\USA\states.lyr"

2.构建逻辑表达式查询空间几何对象 4. 例 2.构建逻辑表达式查询空间几何对象
界面设计如下: 运行界面:

ComboBox1

ListBox

按钮

TextBox1

Button

(一) 代码如下
程序 1:根据 ComboBox1 选择的图层不同 ListBox1

用 ComboBox 选择图层后,通过 ListBox 显示图层各属性,通过 ListBox 的 Text 属性来选择图层的属性.
Private Sub ComboBox1_Change() '定义文档对象 Dim pMxDoc As IMxDocument '定义地图对象 Set pMxDoc = ThisDocument Dim pMap As IMap Set pMap = pMxDoc.FocusMap Dim pILayer As ILayer Dim pLayer As IFeatureLayer Dim i As Integer For i = 0 To pMap.LayerCount - 1 Set pILayer = pMap.Layer(i) If pILayer.Name = ComboBox1.Text Then Set pLayer = pILayer Exit For

End If Next i

Dim Set Dim Dim str

pFClass As IFeatureClass pFClass = pLayer.FeatureClass intLoop As Integer str As String = ""

ListBox1.Clear For intLoop = 0 To pFClass.Fields.FieldCount - 1 str = "" + pFClass.Fields.Field(intLoop).Name ListBox1.AddItem str Next intLoop 'For i = 0 To pFClass.Fields.FieldCount - 1 'str = "'" + pFClass.Fields.Field(i).Name + "'" & " " + str 'Next i 'ListBox1.AddItem str End Sub 根据查询条件显示查询结果,高亮度显示查询结果 Private Sub ComboBox1_Change() '定义文档对象 Dim pMxDoc As IMxDocument '定义地图对象 Set pMxDoc = ThisDocument Dim pMap As IMap Set pMap = pMxDoc.FocusMap Dim pILayer As ILayer Dim pLayer As IFeatureLayer Dim i As Integer For i = 0 To pMap.LayerCount - 1 Set pILayer = pMap.Layer(i) If pILayer.Name = ComboBox1.Text Then Set pLayer = pILayer Exit For End If Next i

Dim Set Dim Dim str

pFClass As IFeatureClass pFClass = pLayer.FeatureClass intLoop As Integer str As String = ""

ListBox1.Clear For intLoop = 0 To pFClass.Fields.FieldCount - 1 str = "" + pFClass.Fields.Field(intLoop).Name ListBox1.AddItem str Next intLoop 'For i = 0 To pFClass.Fields.FieldCount - 1 'str = "'" + pFClass.Fields.Field(i).Name + "'" & " " + str 'Next i 'ListBox1.AddItem str End Sub 实现按钮功能的如下: Private Sub CommandButton9_Click() TextBox1.Text = TextBox1.Text + "And" End Sub Private Sub ListBox1_Click() TextBox1.Text = TextBox1.Text + ListBox1 End Sub 加载图层代码:

通过 ComboBox 显示各图层,并通过循环遍历各图层,从而寻找选中的图层.
Private Sub UserForm_Activate() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim pMap As IMap Set pMap = pMxDoc.FocusMap Dim pLayer As ILayer Dim i As Integer ComboBox1.Clear For i = 0 To pMap.LayerCount - 1 Set pLayer = pMap.Layer(i) ComboBox1.AddItem pLayer.Name Next i ComboBox3.Text = "Creat a new Layer" End Sub 查询示例 1:查询 行政区域的都江堰市,红色区域为查询结果

选择图层 都江堰市 选择图层字段

查询语句

查询示例 2: 查询行政区域的车流量大于 2000 的区域 Maxnumber>2000

查询结果

4. 实习总结: 实习总结:
一,完成的任务:
1 基于 ArcGIS 平台的空间数据库设计与建立 1)图层分类设计 2)空间数据库逻辑结构设计 3)空间数据库物理结构设计与实现 4)空间数据库地里参考系统的设置 5)空间几何信息入库,实体相关属性入库 2 ArcMap 二次定制开发 1)菜单定制 2)工具条定制 3)扩展模块编程与集成 4)由空间几何信息查询相关属性信息 5)构建逻辑表达式查询空间几何对象

二,个人认为此次实习难点(主要针对 ArcMap 定制二次开发)
1)不清楚 ArcGIS 内部的接口,类,方法,不清楚 ArcGIS 的实现逻辑和功能模式,以至于在 实现功能时不知道从那里下手,遇到了很大的麻烦. 2)对于组合框 Combobox,ListBox 的功能和语法不清楚,不会应用简单的语句来实现功能. 3)不会转化问题,把此次而次开发想的难度太大,没有当一个普通的编程题目来做,那样速 度会更快.

三,个人体会
这次实习围绕 ArcMap 解决实际问题的开发的一个完整生命周期,包括建地理信息数据库,属 性入库,定制菜单条工具条,增删功能, 设置图层的显示属性,利用宏来实现一些特殊的功能, 实现一个有利于解决问题的界面环境.收获非常的大,加深了对应用软件开发过程的理解,对自己 的编程能力也是一个警告和提高. 同时明白,在开发过程过一个人力量是很微弱的,只有大家一起积极讨论提出自己的看法才能 加快开发流程,更好的实现功能,所以以后一定要注意多交流观点.

ArcGIS 个人实习总结 rcGIS 一,完成的任务: 1 基于 ArcGIS 平台的空间数据库设计与建立 1)图层分类设计 2)空间数据库逻辑结构设计 3)空间数据库物理结构设计与实现 4)空间数据库地里参考系统的设置 5)空间几何信息入库,实体相关属性入库 2 ArcMap 二次定制开发 1)菜单定制 2)工具条定制 3)扩展模块编程与集成 4)由空间几何信息查询相关属性信息 5)构建逻辑表达式查询空间几何对象 在实习中我遇到了很多的问题,有编程方面的,有数字化方面.但是经过努力后好多 问题都得到了解决,实习对我们是很有益的,特别是对我们的自学能力有很大的提高. 二.实习中遇到的主要问题: 1.基于 ArcGIS 平台的空间数据库设计与建立的方面遇到的问题: (1)图层分类 在地图中选择分类图层时很难把各种地图要素合理的进行分类,也就是在图层设计 时, 很难宏观的把握, 还好老师给的地图是一张成都交通地图, 图上的要素并不是很多, 经过和其他同学的交流取经,最后得到了一个我觉得还比较合理的分类. (2).对 ArcGIS 软件的很多功能不熟悉 有了对图层的分类也就有了对数据库的结构,因此就没有遇到设计方面的问题,这 次的问题主要是不会使用 ArcGIS 软件的功能, 例如在对行政区域的边界进行数字化时, 产生公共边不重合的问题,主要就是不知道 ArcGIS 软件具有 Tace Tool 这个功能键. 因此吃了不少的亏.还有很多类似的问题就不一一的列举了. 三.ArcMap 二次定制开发 由空间信息查询相关属性信息 主要的难点都是编程方面的,VB 语言是我没有学习过的,所以肯定是有困难的. 老师给的相关资料有很多看不懂,问同学也不是全部能得到解决.

相关文章:
利用ArcGIS软件地理信息系统设计与实现
地理信息系统设计与实现 ---利用 ---利用 ArcGIS 软件 指导老师: 指导老师:*** 实习成员: 实习成员: Tphxmx 实习时间: 实习时间:2006.7.20—2006.8.3 目...
基于ArcGIS的园区地理信息系统设计与实现
基于ArcGIS的园区地理信息系统设计与实现_计算机软件及应用_IT/计算机_专业资料。基于 ArcGIS 的园区地理信息系统设计与实现 摘要 : 文以天津某开发区园区地理信息系统...
地理信息系统运用ArcGIS软件进行地图的设计与绘制
地理信息系统运用ArcGIS软件进行地图的设计与绘制_理学_高等教育_教育专区。一、实验...ArcGIS 软件的基本功能的操作和使用,综合考察对 ArcGIS 软件的学习使用的情况。...
基于Google Earth和ArcGIS的地理信息系统的设计与实现
基于Google Earth和ArcGIS地理信息系统设计与实现_计算机软件及应用_IT/计算机...在地 图上量测地理要素之间的距离、方位、面积,乃至利用地图进行战术研究和 ...
基于ArcGIS的贺州某开发区地理信息系统设计与实现
基于ArcGIS的贺州某开发区地理信息系统设计与实现_互联网_IT/计算机_专业资料 暂无评价|0人阅读|0次下载 基于ArcGIS的贺州某开发区地理信息系统设计与实现_互联网_...
基于ArcGIS的贺州某开发区地理信息系统设计与实现
基于ArcGIS的贺州某开发区地理信息系统设计与实现_计算机软件及应用_IT/计算机_专业资料。基于 ArcGIS 的贺州某开发区地理信息系统设计与实现 摘要:文以贺州某开发区...
基于ArcGIS 的环保地理信息系统设计
基于ArcGIS 的环保地理信息系统设计_互联网_IT/计算机_专业资料。基于 ArcGIS 的环保地理信息系统设计 摘要: 地理信息系统( GIS) 在信息化建设中发挥着重要作用。 ...
地理信息系统软件ArcGIS应用课程
地理信息系统软件ArcGIS应用课程_天文/地理_自然科学_专业资料。ArcGIS应用中国人民大学社会与人口学院 地理信息系统软件 ArcGIS 应用课程学习班(第一期)课程简介: 地理...
基于ArcGIS server的GIS系统开发
基于ArcGIS server的GIS系统开发_计算机软件及应用_IT/计算机_专业资料。ArcGIS server的GIS系统开发基于ArcGIS Server的咸阳师范学院GIS系统开发 摘要 本文介绍了校园GIS...
更多相关标签:
arcgis地理信息系统 | 利用udp实现聊天系统 | 利用rtmp实现直播系统 | arcgis地理配准 | arcgis地理配准步骤 | arcgis土地利用现状图 | arcgis坐标系统转换 | arcgis地理加权回归 |