lisp线性标注自动避让_现在常用的地图标记避让算法有哪些啊?

自动地图标记应该算是GIS中最复杂的问题之一吧(属于NP复杂度问题,所以通常不能找到最优解,只能找到较优解),已经有不少的文章讨论过相关算法。跟解决其他NP问题一样,大部分算法的思路都是提供一个启发(heuristic)给算法作为下一步执行的依据。

常见的算法大致可分为这么几类(或者是他们的结合):

基于规则的算法(rule-based algorithms):给算法预先拟定一些规则(这些规则的好坏会在很大程度上影响结果的好坏),按照这些规则执行算法。比如对地名的标注:首先标注且不冲突重要城市的标注;尽量标注在城市的上方,如果遇到冲突则再依次尝试右左下。其他规则还可以描述诸如标注的方向,边缘处如何解决等等。

局部优化算法(local optimization algorithms):依次摆放标注尽量使之不出现冲突,直到某一处标记所有潜在的位置都会出现冲突时,则选择冲突最少(例如给标注拟定一个轮廓,选择重合面积最少的)的一处摆放。这个方法通常结果不会太好,但速度很快。

分而治之算法(divide-and-conquer algorithms):这既可以作为一种策略,也可以作为一种算法的思路。作为策略,比如很有可能在有些地方标注比较稀疏(例如沙漠地区城市较少),可以将那些地方隔离,用快速简单的算法得到令人满意的结果,这在很大程度上能够提高整体的效率(如果地地图很大标注很多,运算时间可能会很长);而在那些标注密集的地方采用更复杂的算法。作为算法,将地图内容分成小块进行标注,小块再分成更小的小块(递归地),当集合小到可以进行较好的标注(比如分到只对两个地名进行不冲突标注),然后再考虑他们的结合。这种算法分割和结合的方法对结果影响比较大。

我觉得除非你自己就是想研究/比较各种算法或者想提出新算法,或者对标注结果有特别或较高的要求,不然没有必要自己去实现这些算法(感觉要花点时间)。ArcGIS QGIS这些平台工具一般都包含地图标记工具。

QGIS: 2. Lesson: The Label Tool

ArcGIS: ArcGIS Help 10.1

好像没听过离线切图,不好发表意见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值