转自 http://blog.sina.com.cn/s/blog_ba3ace5f0101i8d7.html
一、Maplex自动点抽稀
Maplex是ArcGIS的高级智能标注引擎,利用Maplex的牵引线标注,将Symbol作为label显示,从而使点符号与文字标注绑定在一起,通过调整阈值自动进行标注间避让,计算出地图上所有标注的最佳放置位置,达到点抽稀的目的。
主体思路:Maplex中对label有很好的显示控制,一旦显示symbol,则会出现symbol存在、label不存在,并且可能存在symbol互相叠置的现象;如果不显示symbol,那么就没问题。是否能让symbol作为label一块来显示,通过maplex来控制?研究的结果是可行的,方法如下:
1、使用Maplex标注引擎,在label manager中选择要显示的点图层。此处可点击Text symbol中的symbol,在symbol selector中选择bullet leader。
2、选择之后点击Properties,进入编辑器。
3、选择Advanced text选项卡,点击Text background的properties。
4、进入Text background属性编辑器,在line callout中选中leader,点击Symbol。
5、在symbol selector对话框中点击properties。
6、在symbol property editor中的type选择Marker line symbol。
7、在cartographic line 选项卡中color设置为无色,template选项卡中偏移一个位置。
8、在Line properties选项卡中line decorations中选择第二项,点击Porperties
9、在line decoration editor中选中Flip All和Flip First,Rotation中选择第二项,点击symbol。
10、在symbol selector中选择要表达该POI点的符号。(同标准的符号操作一样)。用properties进行更多设置。
11、逐步OK之后,在第4步操作的面板中设置牵引线的容限与间隔。容限值及间隔的设置,可参照“13、补充说明”部分。
12、Maplex抽稀前后效果如下:
点抽稀前
抽稀后
13、补充说明
点抽稀时有如下几个关键值
1)label offset:地图上点到对应标注的距离。
2)牵引线的容差(Leader Tolerance)和间隔(Gap)
Leader tolerance是使牵引线出现时中心点到标注的最短距离(offset),如果offset < Leader tolerance,牵引线将消失。我们要利用牵引线来进行点抽稀,所以应该设置Leader tolerance <= offset,可设置Leader tolerance = 0。
3)线段符号大小(即箭头符号大小Symbol Size)
4)它们之间的长度关系如下图:
为了达到较好的标注效果,应设置:offset > Gap symbol size (一般可设置Gap=0,offset为symbol size的1.5倍),同时需要注意勾选从要素的几何中心开始计算偏移,如下图,否则转出MSD时会使标注离中心点的距离太远。
二、Subset点抽稀
Subset Features工具是ArcGIS地统计分析模块的一个工具,该工具可将数据按照百分比进行抽稀,生成两个结果数据集,一个是抽稀后保留的数据,另一个是互补的那一部分数据。使用步骤如下。
1、在扩展模块面板中,勾选地统计分析扩展模块(Geostatistical Analyst),如下图所示。
2、从地统计工具箱(Geostatistical Analyst Tools)中或者Geostatistical Analyst工具条中,选择打开Subset Features对话框,如下图所示。
3、在Subset Features对话框中,输入要抽稀的图层与相应的参数,如下图所示,其中,训练要素类为默认保留的子类,其大小可在“训练要素子集的大小(可选)”进行选择。默认按照百分比设置输出大小,也可以在“子集大小单位(可选)”中设置按照数量进行输出。点击确定后,将在原始数据的基础上按照设置的百分比或者输出数量,生成保留的子集。
4.SubSet工具使用前后结果对比
抽稀前
抽稀后(百分比为30%)
三、SubPoints点抽稀
Sub Points工具是Esri中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的“优先级”属性进行筛选。通过获取每个点在一定范围内拥有的相邻点的数目信息,得到地图中点密度的分布状况。抽稀时在若干相临近的点中首先比较优先级,保留优先级高的;优先级相同时比较NAME字段,保留NAME长度短的;两者都相同时随机选择。
使用Sub Points进行点抽稀的数据,必须包含“优先级”和“name”两个字段。其中优先级用来设置数据的重要性,在抽稀过程中综合考虑数据的优先级别。
1.1安装与部署
1、首先将GPSubPoints.dll及“注册插件”文件拷贝到本机目录下,然后根据实际存放目录编辑修改“注册插件”中GPSubPoints.dll的存放路径"D:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\GPSubPoints.dll",如下图所示。
修改保存后,双击“注册插件”文件,将出现以下对话框。
2、注册完成后可以在ArcCatalog中新建一个ArcToolbox,如下图示。
然后向其中添加工具,如下图所示。
在弹出的“添加工具”对话框中,选择注册好的Sub Points工具,选中后即可完成添加。如下图所示。
从下图可以看到,刚新建的工具箱中会出现刚添加的GP工具,双击或右键点击打开即可使用了。
也可以将这个工具添加到ArcToolbox的列表中,方便以后直接调用。
1.2Sub Points 使用
1、先利用Point Distance工具计算临近要素,如下图所示。
Point Distance工具运行结果为一张记录某点在一定距离(比如100米)到范围内相邻点的距离的表,如下图所示。
临近要素表
2、原数据中建立“优先级”(short)字段,并给“优先级”字段赋值;
3、运行Sub Points工具计算status的值,在Input PointDistance Table中输入第一步生成的临近要素表。Input Feature中,输入待抽稀的要素图层。
运行该工具后,将生成status字段,并根据优先级以及临近要素表给status赋值。如下图所示。
4、对于status > -99的值,表示要保留显示的要素;对于status = -99的值,表示要删除或者不在地图上显示的要素。可通过定义查询操作来控制地图显示内容,如下图所示。也可以直接删除不显示的要素。
5、Sub Points使用前后效果图
抽稀前
抽稀后
四、总结
通过对三种方法的探究,得出如下结论:
Maplex自动点抽稀方法,方便快捷,只需对图层标注样式进行设置即可完成点抽稀。不足之处在于点符号显示位置与实际位置存在偏差,如下图所示(红色符号为点的真实位置,绿色符号为抽稀后点的显示位置)。
如果POI单纯用于底图浏览,并且对数据精度没有特别高的要求可采用这种方式。
使用Subset工具执行效率较高,但该方法保持了原图的疏密程度,并不能使数据均匀分布,原有数据密度高的地方抽稀后还是较密,因此单纯利用该工具难以实现底图上的抽稀效果。
Sub Points点抽稀方法能达到比较好的图面效果,并且能保持点位的精确,但是大数据量时(超过100000条)耗时较长。
因此,对于大数据量POI,为了兼顾图面效果、数据精确性以及执行效率,建议采用Subset与Sub Points相结合的方法。首先通过Subset方法进行空间上的抽稀以减少数据量,再利用Sub Points方法进行抽稀以达到较好的制图效果。
总之,三种抽稀方法各有优缺点,在实际应用中可根据需要,选择合适的抽稀方法。