" />

http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcGIS入门与应用 >> 正文

在ArcGIS中如何删除重复的点要素

作者:tj051181    文章来源:tj051181    点击数:    更新时间:2009-12-21
摘要:在ArcGIS中如何删除重复的点要素,第一种方法是借助ArcGIS自带的扩展,Spatial ETL Tool,该工具是FME的一个模块,通过介绍在ArcGIS环境下逐步地新建一个Spatial ETL Tool,熟悉FME这款软件的风格和主要思想。第二种方法是ArcGIS自身的工具方法,打一套组合拳,亦可以得到想要的结果。第三种方法是新近补上去的,主要思路和FME处理一样:先将点的坐标按 "x,y" 的格式写入一个字段,然后对这个字段进行重复项检查<两步都是使用field Calculate>

第三种方式是完全通过field Calculate实现:

1.新建字段[coordinate] ,类型设置为text,长度默认50,右击该字段,选择field Calculate,点advanced,填入一下表达式:

  1. ' ----------------------------------------
  2. ' @ Tsonghua  090924
  3. ' ----------------------------------------
  4. Dim Output As string
  5. Dim pPoint As IPoint
  6. Set pPoint = [Shape]
  7. Output = pPoint.X & "," & pPoint.Y
复制代码



2.新建字段[Dup],类型设置为 long integer,右键选field Calculate,在advanced的表达式框中填入:

  1. ' ----------------------------------------
  2. ' @ Tsonghua 090924
  3. ' ----------------------------------------

  4. Static d As Object
  5. Static i As Long
  6. Dim iDup As Integer
  7. Dim sField
  8. ' ----------------------------------------
  9. '这里填写需要检查的字段名
  10. sField = [coordinate]
  11. ' ----------------------------------------
  12. If (i = 0) Then
  13. Set d = CreateObject("Scripting.Dictionary")
  14. End If
  15. If (d.Exists(CStr(sField))) Then
  16. iDup = 1
  17. Else
  18. d.Add CStr(sField), 1
  19. iDup = 0
  20. End If
  21. i = i + 1
复制代码



3.这样,只需要挑选出[Dup]字段值为1的删掉即可。

4.思考:这里可以不可以删除在一定精度下不完全重复但是靠的很近的点呢?
可以在把坐标写入字段的时候控制一下,用format 函数规定好xy坐标输出的小数位数




由于水平有限,文中所提到的不是之处,望不吝赐教^^

 

上一页  [1] [2] [3] [4] 

Tags:ArcGIS,线性参考  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图