Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道使用哪种算法Google在地图上显示文本(如街道/河流名称等)?特别是我想知道它们如何呈现折叠的字符串(例如N Cahuenga Blvd)。
Google
N Cahuenga Blvd
我试图看看Google API,但我找不到任何有用的东西...... :(
Google API
如果您在弯曲的道路上仔细查看 Google 地图,您会看到字母接触的地方,以及每个字母似乎有不同坡度的地方。
他们的系统可能在概念上很简单,就像绘制两条平行于道路中心的曲线——间隔一个标准字形高度。然后,如果线条向字母顶部弯曲,则通过测量顶线的一个字母宽度来间隔下一个字母。如果它向下弯曲,则使用下面的线。在结果点处垂直于线绘制每个字母。
这是一个猜测(我不知道他们使用什么算法):
我会使用一条曲线来绘制街道,这条曲线穿过你所谓的“虚线”的所有角点。具体来说,我会尝试使用贝塞尔曲线(一种对图形具有有用属性的参数曲线,例如使用整数算术进行简单快速的计算和很好的结果)。为了布置文本,我会做一些事情来确保文本沿着曲线流动 - 例如这里描述的。