多个Google地图产品都具有折线的概念,就基础数据而言,它基本上只是一系列lat / lng点,例如可能会在地图上绘制的线条中显示。 Google Map开发人员库使用编码折线格式,该格式生成表示构成折线的点的ASCII字符串。然后,通常使用Google库的内置函数或由实现解码算法的第三方编写的函数对此编码格式进行解码。
Encoded Polyline Algorithm Format文档中描述了编码折线点的算法。 不描述的是以这种方式实现算法的基本原理,以及每个步骤的重要性。我有兴趣知道以这种方式实现算法背后的思路/目的是否在任何地方公开描述。两个示例问题:
但总的来说,一个描述与算法一起解释为什么算法的实现方式。
答案 0 :(得分:3)
更新:This blog post也有'有效的ascii'范围参数,并且逻辑上读取我想知道的其他步骤。例如。在存储之前左移,这使得负位成为第一位。
我发现了一些解释,不确定一切是否100%正确。
>
但是63 ?
真的更好吗?至少第一个ascii字符不可显示,必须避免。请注意,如果一个人使用64,那么就会命中ascii char 127,最大值为31(31 + 64 + 32),并且这个char没有在html4中定义。或者是因为签名字符从-128到127并且我们需要将负数存储为正数,从而添加最大可能的负数?