zoukankan      html  css  js  c++  java
  • arcengine 经典代码(转) 空间查询 在一个图层上画一个polygon,根据该polygon查询出图层上与之相交的polygon并高亮显示出来

    如何进行空间查询

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

  • 相关阅读:
    linux下修改MAC地址方法
    自定义VBS脚本(统计在指定文件中搜索字符串出现的次数)
    mysql 1053错误,无法启动的解决方法
    VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)
    在命令提示符下,怎么查看windows开启了哪些服务?
    vbs 读取txt是读取特定的行
    Windows XP SP3中远程桌面实现多用户登陆
    Linux关机命令详解
    VBS 读取文本文件特殊字符前如逗号的值并赋值给变量
    VBS基础篇
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/1251698.html
Copyright © 2011-2022 走看看