默认头像
路人甲
路人甲
  • 注册日期2003-11-04
  • 发帖数46
  • QQ289588295
  • 铜币256枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2782回复:5

[求助]闪烁所选择的Features[AO]

楼主#
更多 发布于:2004-08-23 09:22
现在给定条件选择到一些记录,想把他们同时闪烁,可以吗?有做过的吗? 怎么闪烁呢?一个Feature容易闪烁,把选择到的Features同时闪烁,怎么做呢
喜欢0 评分0
书到用时方很少,是非经过不知难!
默认头像
路人甲
路人甲
  • 注册日期2004-03-25
  • 发帖数341
  • QQ
  • 铜币272枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-08-23 15:06

以下这个例子是针对点集的。

Hxxp://forums.esri.com/Thread.asp?c=93;f=993;t=98048#273527

 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub UIButtonControl1_Click()

Dim pDoc As IMxDocument Set pDoc = ThisDocument

Dim pMap As IMap Set pMap = pDoc.FocusMap

Dim pFL As IFeatureLayer Set pFL = pMap.Layer(0)

Dim pFCursor As IFeatureCursor Set pFCursor = pFL.Search(Nothing, False)

Dim pPointCollection  As IPointCollection Set pPointCollection = New Multipoint

Dim pF As IFeature

Set pF = pFCursor.NextFeature

Do While Not pF Is Nothing     pPointCollection.AddPoint pF.Shape     Set pF = pFCursor.NextFeature Loop

FlashGeometry pPointCollection

End Sub '   effet visuel 'flash sur un objet 'en entree : la geometry de l'objet (pFeatrue.Shape) 'en sortie : Public Sub FlashGeometry(pGeo As esriCore.IGeometry)   Dim pDisplay As IScreenDisplay   Dim Cache As Integer   Dim pCartographicLineSymbol As ICartographicLineSymbol   Dim pSimpleFillSymbol As ISimpleFillSymbol   Dim pSimpleMarkersymbol As ISimpleMarkerSymbol   Dim pLineDecoration As ILineDecoration   Dim pLineProperties As ILineProperties   Dim pLineDecElement As ISimpleLineDecorationElement   Dim pAMSymbol As IArrowMarkerSymbol   Dim pSymbol As ISymbol   Dim pColor As IRgbColor   Dim Interval As Long   Dim Size As Long

 Dim pApp As IMxApplication   Set pApp = Application   Set pDisplay = pApp.Display      'Set pDisplay = m_pEditor.Display   Set pColor = New RgbColor   pColor.Green = 150   Interval = 500   Size = 9      Cache = pDisplay.ActiveCache  'Original Cache   pDisplay.ActiveCache = esriNoScreenCache      pDisplay.StartDrawing pDisplay.hDC, esriNoScreenCache

 Select Case pGeo.GeometryType     Case esriGeometryPolyline       Set pAMSymbol = New ArrowMarkerSymbol       pAMSymbol.Style = esriAMSPlain       pAMSymbol.Size = 12       pAMSymbol.Color = pColor              Set pLineProperties = pCartographicLineSymbol  'QI                    Set pLineDecElement = New SimpleLineDecorationElement       pLineDecElement.Rotate = True       pLineDecElement.MarkerSymbol = pAMSymbol       pLineDecElement.AddPosition (1)              Set pLineDecoration = New LineDecoration       pLineDecoration.AddElement pLineDecElement              Set pCartographicLineSymbol = New CartographicLineSymbol       Set pSymbol = pCartographicLineSymbol 'QI       pSymbol.ROP2 = esriROPNotXOrPen 'erase itself when drawn twice       pCartographicLineSymbol.Width = Size       pCartographicLineSymbol.Color = pColor       pDisplay.SetSymbol pSymbol       pDisplay.DrawPolyline pGeo       pLineDecoration.Draw pDisplay.hDC, pDisplay.DisplayTransformation, pGeo       Sleep Interval       pDisplay.DrawPolyline pGeo       pLineDecoration.Draw pDisplay.hDC, pDisplay.DisplayTransformation, pGeo     Case esriGeometryPolygon       Set pSimpleFillSymbol = New SimpleFillSymbol       Set pSymbol = pSimpleFillSymbol       pSymbol.ROP2 = esriROPNotXOrPen       pSimpleFillSymbol.Color = pColor       pDisplay.SetSymbol pSimpleFillSymbol       pDisplay.DrawPolygon pGeo       Sleep Interval       pDisplay.DrawPolygon pGeo     Case esriGeometryPoint       Set pSimpleMarkersymbol = New SimpleMarkerSymbol       Set pSymbol = pSimpleMarkersymbol       pSymbol.ROP2 = esriROPNotXOrPen       pSimpleMarkersymbol.Color = pColor       pSimpleMarkersymbol.Size = Size       pDisplay.SetSymbol pSimpleMarkersymbol       pDisplay.DrawPoint pGeo       Sleep Interval       pDisplay.DrawPoint pGeo     Case esriGeometryMultipoint       Set pSimpleMarkersymbol = New SimpleMarkerSymbol       Set pSymbol = pSimpleMarkersymbol       pSymbol.ROP2 = esriROPNotXOrPen       pSimpleMarkersymbol.Color = pColor       pSimpleMarkersymbol.Size = Size       pDisplay.SetSymbol pSimpleMarkersymbol       pDisplay.DrawMultipoint pGeo       Sleep Interval       pDisplay.DrawMultipoint pGeo

   Case Else   ' Other type   End Select      pDisplay.FinishDrawing   'reset the cache   pDisplay.ActiveCache = Cache

End Sub

[此贴子已经被作者于2004-8-23 15:06:29编辑过]
签 名: 不能超过 250 个字符 文字将出现在您发表的文章的结尾处。
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-03-25
  • 发帖数341
  • QQ
  • 铜币272枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-08-23 15:09

hxxp://forums.esri.com/Thread.asp?c=93;f=993;t=119751#344355

签 名: 不能超过 250 个字符 文字将出现在您发表的文章的结尾处。
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-04-16
  • 发帖数2
  • QQ
  • 铜币109枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-09-14 17:39

急需~

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-09-15 12:12
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-10-18
  • 发帖数22
  • QQ
  • 铜币227枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-09-16 02:29
超级简单,哪里还需要写这么长的代码,如果是点,你就构造一个点集,如果是多边形或多义线,你就使用geometrybag,构造一个新的要素,闪烁即可
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部