在AO+VC中怎样使通过属性查找到的图元结果在地图上不断的闪烁

本文介绍了一个在ArcGIS中实现几何图形闪烁效果的VBA函数。通过调整颜色和绘制方式,可以在地图上对点、线和面等不同类型的几何图形进行视觉强调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你先找到 feature的geometry ,然后闪烁,可以参照下面的函数
 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub FlashGeometry(pGeo As IGeometry, pMap As IMap, Optional iInterval As Integer = 300)
  'iInterval is in milliseconds
  
  Dim pSimpleLineSymbol As ILineSymbol, pSimpleFillSymbol As ISimpleFillSymbol
  Dim pSimpleMarkersymbol As ISimpleMarkerSymbol, pActive As IActiveView
  Dim pSymbol As ISymbol, pDisplay As IScreenDisplay, pColor As IRgbColor

  Set pColor = New RgbColor
  pColor.Red = 50
  pColor.Blue = 175
  pColor.Green = 50
  Set pActive = pMap
  Set pDisplay = pActive.ScreenDisplay
  
  pDisplay.StartDrawing 0, esriNoScreenCache
  
  Select Case pGeo.GeometryType
    Case esriGeometryPolyline
      Set pSimpleLineSymbol = New SimpleLineSymbol
      Set pSymbol = pSimpleLineSymbol  'QI
      pSymbol.ROP2 = esriROPNotXOrPen  'erase itself when drawn twice
      pSimpleLineSymbol.Width = 4
      pSimpleLineSymbol.Color = pColor
      pDisplay.SetSymbol pSimpleLineSymbol
      pDisplay.DrawPolyline pGeo
      Sleep iInterval
      pDisplay.DrawPolyline pGeo
    Case esriGeometryPolygon
      Set pSimpleFillSymbol = New SimpleFillSymbol
      Set pSymbol = pSimpleFillSymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleFillSymbol.Color = pColor
      pDisplay.SetSymbol pSimpleFillSymbol
      pDisplay.DrawPolygon pGeo
      Sleep iInterval
      pDisplay.DrawPolygon pGeo
    Case esriGeometryPoint
      Set pSimpleMarkersymbol = New SimpleMarkerSymbol
      Set pSymbol = pSimpleMarkersymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleMarkersymbol.Color = pColor
      pSimpleMarkersymbol.Size = 12
      pDisplay.SetSymbol pSimpleMarkersymbol
      pDisplay.DrawPoint pGeo
      Sleep iInterval
      pDisplay.DrawPoint pGeo
    Case esriGeometryMultipoint
      Set pSimpleMarkersymbol = New SimpleMarkerSymbol
      Set pSymbol = pSimpleMarkersymbol
      pSymbol.ROP2 = esriROPNotXOrPen
      pSimpleMarkersymbol.Color = pColor
      pSimpleMarkersymbol.Size = 12
      pDisplay.SetSymbol pSimpleMarkersymbol
      pDisplay.DrawMultipoint pGeo
      Sleep iInterval
      pDisplay.DrawMultipoint pGeo
    Case Else    ' Other type
  End Select
  
  pDisplay.FinishDrawing
End Sub
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值