Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 断线文本的Google算法_C#_Algorithm_Google Maps - Fatal编程技术网

C# 断线文本的Google算法

C# 断线文本的Google算法,c#,algorithm,google-maps,C#,Algorithm,Google Maps,我想知道谷歌使用什么样的算法在地图上显示文字(如街道/河流名称等)?特别是我想知道它们是如何渲染折叠的字符串的(例如,卡亨加大道的N) 我试图查看一下谷歌API,但找不到任何有用的东西…:( 这里有一个猜测(我不知道他们使用什么算法): 我会用一条曲线画街道,这条曲线穿过你称之为“虚线”的所有角点。具体地说,我会尝试使用一条(一条参数曲线,它具有图形的有用属性,例如使用整数运算的简单快速计算和良好的结果).对于文本布局,我会做一些事情来确保文本沿着曲线流动-例如,如上所述。这里有一个猜测(我不知

我想知道谷歌使用什么样的算法在地图上显示文字(如街道/河流名称等)?特别是我想知道它们是如何渲染折叠的字符串的(例如,卡亨加大道的
N

我试图查看一下
谷歌API
,但找不到任何有用的东西…:(

这里有一个猜测(我不知道他们使用什么算法):

我会用一条曲线画街道,这条曲线穿过你称之为“虚线”的所有角点。具体地说,我会尝试使用一条(一条参数曲线,它具有图形的有用属性,例如使用整数运算的简单快速计算和良好的结果).对于文本布局,我会做一些事情来确保文本沿着曲线流动-例如,如上所述。

这里有一个猜测(我不知道他们使用什么算法):


我会用一条曲线画街道,这条曲线穿过你称之为“虚线”的所有角点。具体地说,我会尝试使用一条(一条参数曲线,它具有图形的有用属性,例如使用整数运算的简单快速计算和良好的结果).对于文本布局,我会做一些事情来确保文本沿着曲线流动-例如,如上所述。

如果你仔细观察曲线道路上的谷歌地图,你会看到字母接触的地方,以及每个字母似乎有不同坡度的地方


他们的系统在概念上可能很简单,比如画两条平行于道路中心的曲线——间距为一个标准字形高度。然后,如果线条朝字母顶部弯曲,则通过测量顶部线条的一个字母宽度来隔开下一个字母。如果线条向下弯曲,则使用较低的线条。绘制每个字母与结果点处的直线垂直。

如果仔细查看弯曲道路上的谷歌地图,您将看到字母接触的地方,以及每个字母似乎具有不同坡度的地方


他们的系统在概念上可能很简单,比如画两条平行于道路中心的曲线——间距为一个标准字形高度。然后,如果线条朝字母顶部弯曲,则通过测量顶部线条的一个字母宽度来隔开下一个字母。如果线条向下弯曲,则使用较低的线条。绘制每个字母垂直于结果点处的直线。

简单的方法是沿所需直线以该直线的角度渲染每个图示符。没有那么简单,因为:1.字母可以有10px,10px等于5段(每个2px);2.字母不应该相互重叠。我需要用数千个字符串转换大图层,这就是为什么我需要一个快速算法:(找不到任何东西:/还没有理解你的第1点,你能澄清一点吗?关于第2点-有效的解决方案是检查与上一个glyph(或glpyhs,如果你的直线自相交)的重叠,如果它确实相交,将其向右移动一点(1px),再次检查,直到没有交点。Ad.1.当你有一条线(整条线100px)并且它是一条折线时。每段(子线)的长度为2px。那么你的线由50条(每条2px)组成字体大小是20px,然后你需要分析10段,然后在某处画一个字母。顺便说一句,你的2.解决方案有点贵,但我可以用trygometry来解决这个问题,没有重叠的问题,我只想知道如何尽可能快地将字母放在线上(对于我需要处理的大图层)…:一种简单的方法是沿着所需的线以该线的角度渲染每个图示符。没有那么简单,因为:1.字母可以有10px,10px等于5段(每个2段);2.字母不应该相互重叠。我需要用数千个字符串转换大的层,这就是为什么我需要一个快速算法:(找不到任何内容):/还不了解点1,你能澄清一点吗?关于点2-有效的解决方案是检查与上一个图示符(或glpyhs,如果直线自相交)的重叠,如果它确实相交,将其向右移动一点(1px),再次检查,直到没有交点。Ad.1.当你有一条直线时(整条线100px)这是一条折线。每段(子线)有2倍长。那么你的线由50块组成(每个2倍)字体大小是20px,然后你需要分析10段,然后在某个地方画一个字母。顺便说一句,你的2的解决方案有点贵,但我可以用trygometry来解决这个问题,没有重叠的问题,我只想知道如何尽可能快地将字母放在线上(对于我需要处理的大图层)