整理利用ArcGIS软件地理信息系统设计与实现Word文档下载推荐.docx
《整理利用ArcGIS软件地理信息系统设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《整理利用ArcGIS软件地理信息系统设计与实现Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
Tphxmx
实习时间:
2006.7.20—2006.8.3
1.实习目的:
✓学习ArcGIS软件及其组成部分,并能灵活应用。
✓学习定制自己的工作空间,高效率的完成工作。
✓学习利用ArcCatalog建立地理信息数据库,属性入库。
✓学习利用VBA环境做简单的二次开发。
2.实习工具和环境:
工具:
ArcMap、ArcCatalog
硬件环境:
MicrosoftWindowsXPProfessional2002
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格式的成都市交通运输图时需要给地图进行配坐标系,选择坐标系为高斯投影中的北京54(17带)投影坐标系,添加四个控制点保证误差在10m以内.,单击Georeferencing->
rectify进行配准.
2)特征提取:
载入《成都市交通图.mdb》数据库,利用Arcmap中的
选择相应图层矢量化并保存结果(即几何信息入库)
3)属性添加:
选中点、线或面状目标,右击,选择Attributes,弹出Attributes对话框,在对话框中设置目标的属性。
(注释:
自动生成的属性无法修改)
4)整饰地图:
标记地图要素,修改要素符号、线条,改变要素颜色以便更好逼真的显示地图
标记地图要素,修改要素符号、线条
.右击要改变属性的图层,在LayerProperties对话框里可以全方面修改图层的显示特性还可以设置简单的查询,连接等功能,更好的表现图层的属性
依比例显示地图:
7.地图数字化结果:
二、ArcMap定制二次开发
目的:
学习制作自己的软件界面,学习基于ArcGIS平台的GIS项目的建立与实现的流程,学习简单的ArcMap二次定制开发。
实习步骤:
(1)菜单定制
(2)工具条定制(3)查询
菜单定制:
包括汉化,屏蔽一些功能,分组,向采单条添加新的功能。
Tools→Customize,然后右键点击要汉化的菜单名,实现上面的功能
在Customize对话框选择相应的菜单条,把直接拖到采单条可以实现添加,拖动到Customize可以实现删除
工具条定制:
包括工具条的增删和用宏定制工具条
1.利用Customize对话框添加工具条
2.利用宏定制工具条ToolsMacros在Macros对话框定制宏并编辑功能
例证:
一个表示放大功能的宏示例如下
通过Customize→Commands→Macros-→Commands往工具条里面添加功能,可以改变标签的符号,颜色,实现分组等功能
用界面的方式实现简单查询放大,缩小和查询功能
设计步骤:
Tools→Customize→Commands→UIControls
单击CreateandEdit按钮进入VBA编程环境
如图所示添加一个用户界面,就可以开始实现功能了
3.例1.简单实现放大缩小,返回上一级,标记要素,打开layer图层等
界面如下
程序如下:
实现放大功能的代码
PrivateSubCommandButton1_Click()
DimpDocAsIMxDocument
DimpEnvAsIEnvelope
SetpDoc=ThisDocument
SetpEnv=pDoc.ActiveView.Extent
pEnv.Expand0.5,0.5,True
pDoc.ActiveView.Extent=pEnv
pDoc.ActiveView.Refresh
EndSub
实现缩小功能的代码
PrivateSubCommandButton2_Click()
pEnv.Expand2,2,True
返回上一层代码
PrivateSubCommandButton3_Click()
'
macro:
FullExtentPlus
DimIntAnsAsInteger
DimPItemAsICommandItem
WithThisDocument.CommandBars
SetPItem=.Find(ArcID.PanZoom_FullExtent)
IntAns=MsgBox("
Zoomtopreviousextent?
"
vbYesNo)
IfIntAns=vbYesThen
SetPItem=.Find(ArcID.PanZoom_ZoomToLastExtentBack)
PItem.Execute
Else
EndIf
EndWith
标记要素的代码
PrivateSubCommandButton4_Click()
DimfilePathAsString
filePath="
c:
\arcgis\arcexe83\ArcObjectsDeveloperKit\samples\data\USA\states.lyr"
DimpGxLayerAsIGxLayer
DimpGxFileAsIGxFile
SetpGxLayer=NewGxLayer
SetpGxFile=pGxLayer
pGxFile.Path=filePath
DimpMxDocAsIMxDocument
SetpMxDoc=ThisDocument
pMxDoc.FocusMap.AddLayerpGxLayer.Layer
添加图层的代码
PrivateSubCommandButton5_Click()
DimpGraphicsContainerAsIGraphicsContainer
DimpActiveViewAsIActiveView
DimpTextElementAsITextElement
DimpElementAsIElement
SetpMxDoc=Application.Document
SetpGraphicsContainer=pMxDoc.FocusMap
SetpActiveView=pMxDoc.FocusMap
SetpTextElement=NewTextElement
SetpElement=pTextElement
pTextElement.Text="
Xmarksthespot"
pElement.Geometry=pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y)
pGraphicsContainer.AddElementpTextElement,0
pActiveView.PartialRefreshesriViewGraphics,Nothing,Nothing
4.例2.构建逻辑表达式查询空间几何对象
界面设计如下:
运行界面:
(一)代码如下
程序1:
根据ComboBox1选择的图层不同ListBox1
用ComboBox选择图层后,通过ListBox显示图层各属性,通过ListBox的Text属性来选择图层的属性。
PrivateSubComboBox1_Change()
'
定义文档对象
定义地图对象
DimpMapAsIMap
SetpMap=pMxDoc.FocusMap
DimpILayerAsILayer
DimpLayerAsIFeatureLayer
DimiAsInteger
Fori=0TopMap.LayerCount-1
SetpILayer=pMap.Layer(i)
IfpILayer.Name=ComboBox1.TextThen
SetpLayer=pILayer
ExitFor
EndIf