一、需求背景
制图工作中,经常会遇到大量密集的地名地址与兴趣点(以下简称“兴趣点”)显示问题,兴趣点在空间分布上位置临近甚至重叠,以至于标注信息存在压盖和重叠,为了制图美观,突出制图内容标注主题,通常需要对大量的兴趣点进行抽稀 。
点要素的抽稀显示和标注一直是困扰地图制作者的一大难题。主要表现为,不同主题、不同行业所关注的信息不一致;相同的数据,不同的作业员对上图数据的选择也会出现不同的结果;没有通用性的工具,解决点位在不同应用场景下的抽稀需求,且点位显示调整工作量巨大。如何自动化的对点进行抽稀,更好、更清晰的显示点的符号和标注?很多制图工作者做了大量的研究。
经过对比分析多种点抽稀解决方案,综合考虑多种应用场景下如何有效控制保留点位的准确性,作者研发了POI显示抽稀工具,工具对密集点要素抽稀效果演示如下:
(1)POI数据抽稀结果:
POI抽稀结果
(2)POI抽稀结果制图效果:
POI制图效果
二、已知点抽稀方法介绍
在 ArcGIS 中有三种点抽稀的方法:Maplex 自动点抽稀、 Subset 点抽稀和 SubPoints 点抽稀 。
2.1 Maplex 自动点抽稀
Maplex 是 ArcGIS 的高级标注引擎,利用 Maplex 的牵引线标注,将 Symbol的箭头替换为兴趣点的标记符号显示,从而使点符号与文字标注绑定在一起,通过调整标注内容与箭头的距离阈值自动进行标注间避让,动态计算出地图上所有标注的最佳放置位置,达到点抽稀的目的 。
优点:
① Maplex 自动点抽稀方法,方便快捷,只需对图层标注样式进行设置即可完成点抽稀。
不足:
①点符号显示位置与实际位置存在偏差 ,尤其是大比例尺显示时尤其明显;
②标注动态计算放置位置,不能确定最终被标注的点位信息。
2.2 Subset 点抽稀
Subset Features 工具是 ArcGIS 地统计分析模块的一个工具,工具将原始数据集分为两部分,一部分用于建立空间结构模型和生成表面,另一部分用于比较和验证输出表面。可通过设置该工具的“训练要素子集的大小”参数为百分数,实现对兴趣点数据按照百分比进行抽稀。
该工具执行结果将原始数据集分为两部分,一部分是抽稀后保留的数据,另外一部分是互补的那一部分数据。
优点:
Subset 工具执行效率较高 。
不足:
该方法保持了原图的密程度,并不能使数据均匀分布,仍然会对原始数据很稀疏的进行抽稀,难以实现底图上的抽稀效果 。
2.3 Sub Points 点抽稀
Sub Points 工具是之前 Esri 中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的“优先级” 属性进行筛选。通过获取每个点在一定范围内拥有的相邻点的数目信息,得到地图中点密度的分布状况。抽稀时在若干相临近的点中首先比较优先级,保留优先级高的;优先级相同时比较 NAME 字段,保留 NAME 长度短的;两者都相同时随机选择。
使用 Sub Points 进行点抽稀的数据, 必须包含“优先级”和“name”两个字段。其中优先级用来设置数据的重要性,在抽稀过程中综合考虑数据的优先级别。
优点:
①工具优先考虑点位在空间分布上的均匀合理性,并结合点数据中包含的 "优先级" 属性和标注字段"name"字符长度进行筛选。
②较之前两种抽稀方法,已经能满足大多数制图场景下对点位抽稀的需求。
不足:
①当用户有一批点位数据是“VIP” 级别的,必须在地图中显示时,不能保证;
②抽稀控制粒度不够细致,不能很好的满足实际应用中的复杂场景;如,在没有"优先级"属性字段时,优先放置用户关注度更高的政府机构,企事业单位等;
③抽稀效率不高,当数据超过10W条时,耗时较长。
三、POI显示抽稀工具介绍
3.1 制图遵守规则
- 每级地图的地图负载量与对应显示比例尺相适应的前提下,尽可能完整保留数据源的信息;
- 下一级别的要素内容不应少于上一级别,即随着显示比例尺的不断增大,要素内容不断增多;
- 要素选取时应保证跨级数据调用的平滑过渡,即相邻两级的地图负载量变化相对平缓。
3.2 抽稀算法逻辑
点要素显示抽稀,其难点是抽稀的逻辑的通用性。因为对于POI 点本身而言,不同行业、不同用户,对点位的关注程度是不一样的,就算是同一行业的数据,点位的等级也是不相同的,抽稀的结果,既不能厚此薄彼,又不能随心所欲。
此外,工具的通用性、执行效率、参数对结果的控制粒度、以及后期人工干预量等都是在工具设计时应该考虑的内容。
工具采用“格网化”的思路,网格类型可为正方形或正六边形,具体算法实现见点数据添加网格编号一文。在抽稀之前,先通过抽稀的阈值在数据范围内计算每个点位的网格号,每个网格号内的点要素再按照抽稀逻辑中的要求进行过滤,最终选取一个满足要求的点位,作为该网格内显示的结果。
抽稀逻辑如下:
抽稀过程示意:
工具完全使用开源算法实现,在POI抽稀算法实现一文中,将详细介绍该算法的实现过程。
3.3 抽稀工具介绍
为了使用便捷,已将代码封装为Python工具箱工具“POI点要素显示抽稀”,可在Geoscene Pro或ArcGIS Pro中使用,专门用于解决密集POI点显示和标注时,有效控制点位均匀分布和多场景需求下保留目标点位的要求。抽稀过程中,算法只对数据进行过滤筛选,不对数据空间位置和其他属性值进行更改,能确保抽稀前后数据质量不发生改变。
工具界面和抽稀过程如下:
工具特点:
① 工具支持多个显示比例尺一起抽稀,能确保小比例尺显示的数据,大比例尺一定显示;
② 支持定义“VIP” 点位目录,使得该部分点位必须在地图中显示;
③ 支持有“重要度”属性字段下的高权重点位优先显示;
④ 支持使用查询语句确保用户关注的数据类别(政府机构,企事业单位)优先显示。
⑤ 此外,还结合点位的位置和标注信息的字符长度进行综合考虑,最终获取网格内的目标点位。
工具参数说明: