0

我正在开发一个以 3d 绘制街道地图的移动应用程序。我遇到的问题之一是尝试绘制没有任何重叠的街道标签。我可以让文本沿路径轮廓化,但它们有很多重叠的地方:

在此处输入图像描述

谷歌在绘制没有任何交叉或重叠的街道标签方面做得非常好。适用于 Android 的移动 Google 地图应用程序中的 3d 视图特别擅长展示这一点。

我能想到的唯一想法是进行碰撞检测(在靠近标签之间的每个字母上都有边界球)。这在 3d 中相当昂贵,尤其是同时在屏幕上显示许多标签。

我一直在寻找一些关于谷歌如何进行街道标签放置的见解,或者我可以尝试的其他想法,这些想法比暴力碰撞检测更便宜。Google Maps 应用程序会在您缩放和平移显示时实时更新标签位置,因此无论他们使用什么方法都非常高效。

4

1 回答 1

0

我会说你有点过于复杂了。与其试图逐个字母地碰撞,不如将其简化为一连串的线条。以直线方式书写的名称可以用一条直线表示。弯曲道路内的一些文字最多可以使用 2-3 行来近似。毕竟它不必是像素精确的。

您还可以构建与当前街道“碰撞”的其他街道的集合(也可以作为桥梁等位置),然后确保您的名称不会重叠或靠近这些位置。

于 2012-12-02T11:37:55.960 回答