第6章_ArcGIS Engine二次开发(矢量数据空间分析)
时间:2025-07-09
时间:2025-07-09
介绍ArcGIS Engine二次开发(矢量数据空间分析)
第6章 ArcGIS Engine二次开发
(矢量数据空间分析)
介绍ArcGIS Engine二次开发(矢量数据空间分析)
在这一部分中,您将学习到鹰眼、缓冲区分析、叠置分析 、地 图编辑及网络分析等ArcGIS Engine二次开发实例。
介绍ArcGIS Engine二次开发(矢量数据空间分析)
1. 鹰眼 鹰眼功能是 GIS 的主要功能之一,当地图范围很大时,它可以 很好的为用户指明当前地图的范围。在本小节中我们将学习如 何制作这种鹰眼。
介绍ArcGIS Engine二次开发(矢量数据空间分析)
1. 鹰眼 1.1 添加控件及代码 新建一个 http://www.77cn.com.cn 项目,在其中 Form1添加如下控件: 1. MenuStrip 2. OpenFileDialog 3. ToolbarControl 4.MapControl 5.TOCControl ,如下图所示:
介绍ArcGIS Engine二次开发(矢量数据空间分析)
为 ToolbarControl 添加地图浏览的功能按钮,如放大、缩 小、漫游等 为 MenuStrip中添加两个菜单
介绍ArcGIS Engine二次开发(矢量数据空间分析)
双击菜单栏中的“打开 MXD 文件”添加打开代码。 Dim sFilePath As String '调用OpenFileDialog,获取文件路径并打开地图文件 OpenFileDialog1.FileName = "" OpenFileDialog1.Title = "打开地图文件" OpenFileDialog1.Filter = "MapDocument (*.mxd)|*.mxd" If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then sFilePath = OpenFileDialog1.FileName
FilePath = sFilePathIf Not sFilePath = "" Then Me.AxMapControl1.LoadMxFile(sFilePath) End If End If Me.AxMapControl1.Extent = Me.AxMapControl1.FullExtent
介绍ArcGIS Engine二次开发(矢量数据空间分析)
在 MapControl 的事件中选择 OnExtentUpdated事件并添加代码:
Private Sub AxMapControl1_OnExtentUpdated(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent) Handles AxMapControl1.OnExtentUpdated Dim pEnv As IEnvelope pEnv = e.newEnvelope Dim pGra As IGraphicsContainer Dim pAv As IActiveView pGra = Form2.AxMapControl1.Map pAv = pGra
介绍ArcGIS Engine二次开发(矢量数据空间分析)
pGra.DeleteAllElements() Dim pRectangleEle As IRectangleElement pRectangleEle = New RectangleElement Dim pEle As IElement pEle = pRectangleEle pEle.Geometry = pEnv
Dim pColor As IRgbColor pColor = New RgbColor pColor.RGB = RGB(255, 0, 0) pColor.Transparency = 255
Dim pOutline As ILineSymbol pOutline = New SimpleLineSymbol pOutline.Width = 1
pOutline.Color = pColor
pColor = New RgbColor pColor.RGB = RGB(255, 0, 0)
pColor.Transparency = 0
介绍ArcGIS Engine二次开发(矢量数据空间分析)
Dim pFillSymbol As IFillSymbol pFillSymbol = New SimpleFillSymbol pFillSymbol.Color = pColor pFillSymbol.Outline = pOutline Dim pFillShapeEle As IFillShapeElement
pFillShapeEle = pElepFillShapeEle.Symbol = pFillSymbol pGra.AddElement(pFillShapeEle, 0)
pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing)End Sub
介绍ArcGIS Engine二次开发(矢量数据空间分析)
为工程新建一个窗体 Form2,在 Form2中添加第二个 MapControl 控件 并添加如下引用: Imports ESRI.ArcGIS.Geometry 在 Form2的 FormLoad 事件中为 Form2的 MapControl 控件添加地 图数据Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Form1.FilePath = "" ThenExit Sub End If Me.AxMapControl1.LoadMxFile(Form1.FilePath) Me.AxMapControl1.Extent = Me.AxMapControl1.FullExtent End Sub
介绍ArcGIS Engine二次开发(矢量数据空间分析)
为 Form2 添加 OnMouseDown 事件,并在实践中添加如下代
码:Private Sub AxMapControl1_OnMouseDown(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent) Handles AxMapControl1.OnMouseDown Dim pPt As IPoint Dim pEnv As IEnvelope pPt = New Point pPt.PutCoords(e.mapX, e.mapY) '改变主控件的视图范围 pEnv = Form1.AxMapControl1.Extent pEnv.CenterAt(pPt)
Form1.AxMapControl1.Extent = pEnvEnd Sub
介绍ArcGIS Engine二次开发(矢量数据空间分析)
双击 Form1菜单栏中的“打开略缩图”添加如下代码:
Form2.Show()运行,添加地图数据得到如下效果:
介绍ArcGIS Engine二次开发(矢量数据空间分析)
1.3 小结 在本小节中,我们实现了鹰眼功能,这部分的重点是鹰 眼视图和主视图之间的事件交互。推荐您仔细结合例子程 序查看代码,如果需要获得进一步的信息,请查看帮助系 统。如果您对这一小节的内容比较熟悉了,就可以开始学 习本章最后一小节的内容了。在下一小节中,我们将尝试 添加缓冲区分析功能。
介绍ArcGIS Engine二次开发(矢量数据空间分析)
2. 缓冲区分析
缓冲区分析指为了识别某一地理实体或空间物体对其周围地 物影响度而在其周围建立的具有一定宽度的区域,以确定哪 些实体落在了被影响的区域范围之内。下面是一个简单的缓 冲区分析的示例:
介绍ArcGIS Engine二次开发(矢量数据空间分析)
2.1 添加控件新建一个 http://www.77cn.com.cn 项目,向 Form1 中添加如下控件:MenuStrip、 ToolbarControl 、MapControl 和 LicenseControl ,结果见上鹰 眼程序。为 ToolbarControl 添加地图浏览的功能按钮,包括添 加数据、添加图层、放大、缩小、漫游等 首先通过 Generic 下设置 Buddy 项,将 ToolbarControl 和 MapControl 绑定,如下图:
介绍ArcGIS Engine二次开发(矢量数据空间分析)
其它部分不变,然后在 Items选项 …… 此处隐藏:1793字,全部文档内容请下载后查看。喜欢就下载吧 ……
下一篇:课程设计题目(张晓虎)