【问题标题】:How to fix losing precision when encoding polylines for Google Maps如何在为谷歌地图编码折线时修复丢失的精度
【发布时间】:2012-04-18 10:17:34
【问题描述】:

我发现了这个被广泛引用的页面Encoding polylines for Google Maps。我已经在我的应用程序中实现了他们用于编码和解码折线的算法,但我在保持坐标精度方面遇到了一些问题。

我的折线有这些坐标:

57.012415241636155, 9.99178024863532
57.012422477487256, 9.991334773101812
57.01190974033057, 9.99068645350514

如果我使用their encoder 对它们进行编码,我会得到这个编码的折线:

qf~zIso~{@AxAfB`C

如果我之后尝试使用 their decoder 解码这个编码字符串,我会得到这些坐标:

57.01241, 9.99178
57.012420000000006, 9.991330000000001
57.011900000000004, 9.990680000000001

为什么我的坐标精度会丢失?我需要我的编码折线更精确。

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

    您正在失去精度,因为编码会这样做。

    但是,您肯定不需要那种精度。 (57.012410, 9.991780) 和 (57.012411, 9.991781) 之间的距离(小数点后 6 位为 1)为 12 厘米。小数点后第五位的每个数字约为一米。地图不是那么准确。

    【讨论】:

    • 感谢您的回答。我的坐标应该使用五位还是六位小数?
    • 要么。如果你要对它们进行编码,五是标准的,无论如何,地图不够准确,无法显示一米的差异。使用超过六个绝对没有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多