vkwinter2008
路人甲
路人甲
  • 注册日期2008-08-20
  • 发帖数8
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1501回复:1

[讨论]

楼主#
更多 发布于:2008-09-03 19:09
<P>接触AO不很久。昨天帮别人写了个小程序:</P>
<P>  功能要求:对于数据量很大的点数据(10万左右个),删除其重叠的点。</P>
<P>下面是我的代码。</P>
<P>  Dim pMxd As IMxDocument<BR>  Dim pMap As IMap<BR>  Dim pFL As IFeatureLayer<BR>  Dim pFC As IFeatureClass<BR>  Dim pEnum As IEnumFeature<BR>  Dim pF As IFeature<BR>  Dim pFcursor As IFeatureCursor<BR>  Dim pFilter As ISpatialFilter<BR>  Dim pF2 As IFeature<BR>  Dim pp As IPoint<BR>  Dim pL As IPolyline<BR>  Dim pG As IPolygon<BR>  Dim pSE As ISelectionEnvironment<BR>     Set pMxd = Application.Document<BR>     Set pMap = pMxd.FocusMap<BR>      If pMap.LayerCount <= 0 Then<BR>         MsgBox "请加载数据!"<BR>         Exit Sub<BR>      End If<BR>     For i = 0 To pMap.LayerCount - 1<BR>      Set pFL = pMap.Layer(i)<BR>      Set pFcursor = pFL.Search(Nothing, False)<BR>      Set pF = pFcursor.NextFeature<BR>       </P>
<P>    Do While Not pF Is Nothing<BR>       <BR>        If pF.Shape.GeometryType = esriGeometryPoint Then<BR>            Set pp = pF.ShapeCopy<BR>            <BR>            Set pSE = New SelectionEnvironment<BR>                pSE.PointSearchDistance = 0<BR>               pMap.SelectByShape pp, pSE, True<BR>           If pMap.SelectionCount > 0 Then<BR>             Set pEnum = pMap.FeatureSelection<BR>             pEnum.Reset<BR>             Set pF2 = pEnum.Next<BR>               If pF2.OID <> pF.OID Then<BR>                  For j = 0 To pMap.SelectionCount - 1<BR>                    Set pF2 = pEnum.Next<BR>                    pF.Delete<BR>                  Next<BR>               End If<BR>         <BR>           End If<BR>          Set pF = pFcursor.NextFeature<BR>          pMap.ClearSelection<BR>         <BR>         End If<BR>        <BR>        <BR>        Loop<BR>     Next<BR>     MsgBox "完成!"</P>
<P>   效率好像不行,望高手指点!急!(另外利用Ifeaturefilter速度好像也提高的不多)</P>
喜欢0 评分0
vkwinter2008
路人甲
路人甲
  • 注册日期2008-08-20
  • 发帖数8
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-09-03 19:12
不好意思写错了,最后那个是利用ISpatialFilter速度好像也提高的不多。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部