免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 15956|回复: 40
收起左侧

[技术交流] ArcGIS制图之Sub Points点抽稀

    [复制链接]

113

主题

1万

铜板

173

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
39141

精华勋章宣传勋章爱心勋章组织勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章官方团队地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

发表于 2015-10-19 09:56 | 显示全部楼层 |阅读模式
简介
Sub Points工具是 Esri 中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的 "优先级" 属性进行筛选。通过获取每个点在一定范围内拥有的相邻点的数目信息,得到地图中点密度的分布状况。抽稀时在若干相临近的点中首先比较优先级,保留优先级高的;优先级相同时比较 NAME 字段,保留 NAME 长度短的;两者都相同时随机选择。使用 Sub Points 进行点抽稀的数据,必须包含"优先级"和"name"两个字段。其中优先级用来设置数据的重要性,在抽稀过程中综合考虑数据的优先级别。
修改程序
原始版本是基于10.0开发的,在10.1及以上版本需要修改两处:
    一是SubPointsFunctionFactory.cs文件中CreateGPFunctionNames方法的MinimumProduct属性修改为:
functionName.MinimumProduct = esriProductCode.esriProductCodeBasic;
  二是SubPointsFunction.cs文件中IsLicensed()函数修改为:
IAoInitialize myAoInitialize = new AoInitializeClass();ILicenseInformation myLic = (ILicenseInformation)myAoInitialize;string myLic= myLic.GetLicenseProductName(myAoInitialize.InitializedProduct());if (myLic == "Advanced") return true;else return false;
  如果这两处不修改将会出现许可报错的问题:
    三是SubPointsFunction.cs字段名称的修改。在10.0的版本中字段名称是小写,从10.1起字段名称为大写(本来arcgis不区分大小写,但程序代码中的判断语句区分了大小写,没有使用大小写转换函数)。
int iInputFID = pPDTable.FindField("INPUT_FID");int iNearFID = pPDTable.FindField("NEAR_FID");int iDistance = pPDTable.FindField("DISTANCE");
  除此之外,我还修改了界面的语言为中文。
使用方法
第一步,注册文件。将GPSubPoints.dll拷到arcgis安装目录下(如C:\Program Files (x86)\ArcGIS\Desktop10.1\bin),在dll上右键,选择打开方式为ESRIRegAsm.exe (浏览到C:\Program Files (x86)\Common Files\ArcGIS\bin\ESRIRegAsm.exe),一般情况下会注册成功,并弹出提示消息。(如果安装360等,请将它加入白名单)
第二步,添加工具。打开ArcMap,在我的工具箱(非系统工具箱)上添加工具箱,然后添加工具,选择sub points.
第三步,生成邻近表。使用点距离工具生成邻近表,输入和邻近要素都为需要进行抽稀的点数据,搜索半径为抽稀后任意两个点的最大距离。
第四步,新建字段。在需要抽稀的点数据属性表中新建名称"NAME"和"优先级"( short)的字段,并给"优先级"字段赋值。其中优先级用来设置数据的重要性,在抽稀过程中综合考虑数据的优先级别。如果没有相应的字段将会报错或警告。
第五步,执行抽稀工具。输入邻近表和要进行抽稀的要素,执行抽稀。
第六步,定义查询。结果并未生成新数据、也未删除原来的点,只是增加了标记字段status. 对于 status > -99 的值,表示要保留显示的要素; 对于 status = -99 的值,表示要删除或者不在地图上显示的要素。可通过定义查询操作来控制地图显示内容,如下图所示。也可以直接删除不显示的要素。
结果
抽稀效果如下:对于本来就稀疏的位置,并没有进行抽稀。对于原来密集的地区(小于最小邻近距离)抽稀效果比较良好。
源码和工具下载:http://www.400gb.com/file/125432726

35

主题

2万

铜板

36

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2533
发表于 2015-10-19 14:31 | 显示全部楼层
下载试用,谢谢分享
回复 支持 反对

使用道具 举报

1

主题

621

铜板

4

好友

助理工程师

舍得舍得,有舍才有得

Rank: 5Rank: 5

积分
226
发表于 2016-3-3 09:48 | 显示全部楼层
:bq:bq
厉害!
回复

使用道具 举报

0

主题

3403

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
250
发表于 2016-8-20 11:03 | 显示全部楼层
你好,最后抽稀时,“error 000816工具无效”,不知怎么破?

点评

查一下error 000816是什么问题呗  详情 回复 发表于 2016-8-20 18:35
回复 支持 反对

使用道具 举报

113

主题

1万

铜板

173

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
39141

精华勋章宣传勋章爱心勋章组织勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章官方团队地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

 楼主| 发表于 2016-8-20 18:35 | 显示全部楼层
xiaogoudagou 发表于 2016-8-20 11:03
你好,最后抽稀时,“error 000816工具无效”,不知怎么破?

查一下error 000816是什么问题呗
回复 支持 反对

使用道具 举报

0

主题

3403

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
250
发表于 2016-8-22 08:38 | 显示全部楼层
若水三千 发表于 2016-8-20 18:35
查一下error 000816是什么问题呗

000816 : 工具无效。描述
无法执行工具。查看时视为无效的工具可能会显示一个无效的工具符号([img][/img] 或 [img][/img])。工具无法打开或不存在。造成此错误的原因如下:
  • 如果该工具是模型,则该模型无效或包含无效工具。
  • 如果该工具是由第三方开发者构建的自定义工具,则工具箱中可能不存在此工具或工具执行时存在问题。这种情况下,应通知开发者。




解决方案
如果存在修复图标,则通过单击工具然后重新定位工具或工具箱可修复该工具。
  • 对于模型工具,通过打开模型并在模型内进行更改可以修复模型。
  • 对于由第三方开发者构建的自定义工具,确保将自定义工具(也称为系统工具)添加到自定义工具箱中。如果工具的实现出现问题,请联系工具开发者。




回复 支持 反对

使用道具 举报

0

主题

3403

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
250
发表于 2016-8-22 08:39 | 显示全部楼层
若水三千 发表于 2016-8-20 18:35
查一下error 000816是什么问题呗

我安装完工具,没显示工具有问题,图标等都能操作,就是抽稀时,就显示工具无效。请大神帮忙看看O(∩_∩)O~

点评

你是用的哪个版本? 找源代码重新编译一下  详情 回复 发表于 2016-8-22 10:59
回复 支持 反对

使用道具 举报

113

主题

1万

铜板

173

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
39141

精华勋章宣传勋章爱心勋章组织勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章官方团队地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

 楼主| 发表于 2016-8-22 10:59 | 显示全部楼层
xiaogoudagou 发表于 2016-8-22 08:39
我安装完工具,没显示工具有问题,图标等都能操作,就是抽稀时,就显示工具无效。请大神帮忙看看O(∩_∩) ...

你是用的哪个版本?
找源代码重新编译一下
回复 支持 反对

使用道具 举报

0

主题

3403

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
250
发表于 2016-8-22 12:20 | 显示全部楼层
ArcGIS10.2_Desktop简体中文版,我不懂编代码啊
回复 支持 反对

使用道具 举报

0

主题

3403

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
250
发表于 2016-8-22 12:21 | 显示全部楼层
能否指点一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表