如何进行空间查询
来源:互联网 发布:破碎海滩战役 知乎 编辑:程序博客网 时间:2024/05/06 02:51
本例实现的是在一个图层上画一个polygon,根据该polygon查询出图层上与之相交的polygon并高亮显示出来。
要点
通过RubberPolygon类来实现接口IRubberBand接口对象,用IRubberBand.TrackNew方法在图层上画出polygon,然后定义IGeometry获得该polygon,创建ISpatialFilter接口对象实现过滤功能,通过ILayer接口实例获得IFeatureSelection接口,调用IFeatureSelection.SelectFeatures方法将结果高亮显示。
程序说明
过程UIToolControl1_MouseDown是实现模块。
代码
Option Explicit
Private Function UIToolControl1_Deactivate() As Boolean
UIToolControl1_Deactivate = True
End Function
Private Sub UIToolControl1_MouseDown(ByVal button As Long, ByVal shift As Long, _
ByVal x As Long, ByVal y As Long)
Dim pMxDoc As IMxDocument
Dim pActiveView As IActiveView
Dim pScreenDisplay As IScreenDisplay
Dim pRubberPolygon As IRubberBand
Dim pFillSymbol As ISimpleFillSymbol
Dim pRgbColor As IRgbColor
Dim pPolygon As IPolygon
Dim pGeometry As IGeometry
Dim pFeatselect As IFeatureSelection
Dim pSpatialFilter As ISpatialFilter
On Error GoTo ErrorHandler:
Set pMxDoc = ThisDocument
Set pActiveView = pMxDoc.FocusMap
'Draw Polygon
Set pScreenDisplay = pActiveView.ScreenDisplay
Set pRubberPolygon = New RubberPolygon
Set pFillSymbol = New SimpleFillSymbol
Set pRgbColor = New RgbColor
pRgbColor.NullColor = True
pFillSymbol.Color = pRgbColor
Set pPolygon = pRubberPolygon.TrackNew(pScreenDisplay, pFillSymbol)
With pScreenDisplay
.StartDrawing pScreenDisplay.hDC, esriNoScreenCache
.SetSymbol pFillSymbol
.DrawPolygon pPolygon
.FinishDrawing
End With
'set up pFilter
Set pGeometry = pPolygon
Set pSpatialFilter = New SpatialFilter
With pSpatialFilter
Set .Geometry = pGeometry
.SpatialRel = esriSpatialRelIntersects
End With
'select
Set pFeatselect = pMxDoc.FocusMap.Layer(0)
pFeatselect.SelectFeatures pSpatialFilter, esriSelectionResultNew, False
pFeatselect.SelectionSet.**
pMxDoc.ActiveView.**
Exit Sub
ErrorHandler:
MsgBox Err.Description
End Sub
- 如何进行空间查询
- 如何进行DNS查询
- 如何进行CIP查询
- 使用IIdentify接口进行空间查询
- jsp如何进行查询分页
- 如何进行mysql日志查询
- oracle如何查询表空间信息
- $within进行空间查询--MongoDB API for Java
- 如何使用MFC进行数据库查询
- 如何使用Active Record进行关联查询
- SQL 大数据查询如何进行优化?
- Hibrenate中如何使用Like进行查询
- SQL 大数据查询如何进行优化?
- SQL 大数据查询如何进行优化?
- MYSQL如何进行sql like (sql查询结果)的查询
- 空间查询
- 空间查询
- 空间查询
- 免费迷你书下载:《深入浅出Struts 2》
- ArcGis 9.2客户端开发简介(2)
- 基类指针指向子类对象数组的问题
- [转]FreeLibrary 出错原因及解决办法
- OpenJWeb平台数据库API调用手册(Spring+Hibernate)
- 如何进行空间查询
- 彻底解决Symbian全屏显示问题
- 数据加载
- missing method or missing parameter
- ResourceBundle Editor插件安装
- ArcEngine安装并注册后应用程序无法使用toc等控件的解决办法
- SOCKET编程六种模型
- Asp.Net 2.0的Login系列控件
- 缓冲区分析(1)