MS RFC 112:在MaxOverlappangle Colision之后重试“跟随”标签定位¶
- 日期
2014/10
- 作者
托马斯堡
- 联系方式
- 状态
实施
- 版本
MAPServer 7.2
1。现状¶
用于放置“follow”标签的当前算法有以下限制:
当标签的两个后续字符的相对角度超过定义的“maxoverlappangle”时,标签将被无条件丢弃。
用于计算字符位置的函数依赖于中断代码流的“goto”
重复标签的放置仅在使用repeatInstance时对奇数次重复有效,即即使有两个标签的空间,也只会呈现一个标签。
2。建议的增强¶
该算法将进行扩展,以考虑并尝试纠正当maxoverlappangle开始时发生的交集,方法是确保这些交集仅在单词之间发生:
“space”字符上发生的冲突将被忽略
当发生共缩聚时,将重试标签放置,并放置一个偏移量,使共缩聚落在一个空格上或字符串的开始或结束处。
代码将被重构以避免使用goto
将修改放置算法以优化处理偶数个标签重复:
之前:
-------label--------
后:
--label------label--
2.1问题/限制¶
默认情况下是否应启用重试行为,和/或是否可以将其停用?计算和测试重试的偏移量并不昂贵,性能方面的影响应该最小,并将导致更多的标签被放置。
允许的最大偏移量是否可配置?目前似乎不需要,所有关于最大偏移量的相关信息都包含在行长度、标签长度和repeatDistance中。
2.2向后兼容性¶
除了事实创建的地图之外,没有其他预期的地图可能包含更多/不同的标签。
2.3性能影响¶
有限的。在冲突后重试标签不是CPU繁重的操作。计算glyph高级和/或格式化文本运行等代价高昂的操作不会在每次重试时重新运行。
第四章。投票历史¶
+史蒂文、丹尼尔姆、斯蒂芬、佩林、米克斯、斯蒂芬、托马斯布