http://www.cnblogs.com/xiexiaokui/archive/2008/07/25/1251704.html

简介:


如何进行空间查询

本例实现的是在一个图层上画一个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









    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/xiexiaokui/archive/2008/07/25/1251698.html ,如需转载请自行联系原作者

相关文章
|
10月前
|
数据采集 网络协议
WWW(URL,HTTP,HTML)
WWW(URL,HTTP,HTML)
214 1
|
10月前
Http 实现用户登录(mysql+html+request)
Http 实现用户登录(mysql+html+request)
|
JavaScript 前端开发 网络协议
HTML基础标签 && CSS选择器 && JavaScript基础语法 && WebAPI_ && 页面设计 && HTTP协议
HTML基础标签 && CSS选择器 && JavaScript基础语法 && WebAPI_ && 页面设计 && HTTP协议
72 0
|
存储 Web App开发 网络协议
HTML&CSS Day01 功能元素与HTTP请求协议详解
HTML&CSS Day01 功能元素与HTTP请求协议详解
99 0
HTML&CSS Day01 功能元素与HTTP请求协议详解
|
数据采集 数据挖掘 测试技术
在Objective-C中使用ASIHTTPRequest发送HTTP请求并获取HTML内容
在Objective-C中使用ASIHTTPRequest发送HTTP请求并获取HTML内容
|
数据可视化 网络协议
HTTP HTML 概述
HTTP HTML 概述
77 0
|
存储 缓存 JavaScript
Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件
为了解决调用一些依赖的如echarts等一些js的代码模块引入的问题,就需要静态文件了。 本篇解说StaticFileController,在返回的html文本中调用外部js文件,类似的,其他文件都是一样了,只是引入的后缀名不一样。
Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件
|
Java
Java HTTP请求 如何获取并解析返回的HTML内容
在Java开发中,经常会遇到需要获取网页内容的情况。而HTTP请求是实现这一目标的常用方法之一。本文将介绍如何使用Java进行HTTP请求,并解析返回的HTML内容。
531 0
|
XML JSON 前端开发
Qt+QtWebApp开发笔记(五):http服务器html中使用json触发ajax与后台交互实现数据更新传递
前面完成了页面的跳转、登录,很多时候不刷新页面就想刷新局部数据,此时ajax就是此种技术,且是异步的。   本篇实现网页内部使用js调用ajax实现异步交互数据。   在js中使用 ajax是通过XMLHttpRequest来实现的。
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation