【问题标题】:How to save markers?如何保存标记?
【发布时间】:2012-03-25 13:34:52
【问题描述】:

我有一个保存谷歌地图标记的应用程序,我基本上将 lat lng 坐标/变量保存在一个数组中,然后我将它保存在我的 mongodb 中。当我重新加载这些标记时,我在数组中循环并从保存的 lat lng 变量创建标记。

我的问题是,当我第一次保存我的标记时,一个 lat 被称为 Pa 和一个 lng Oa,然后 1 个月前,我保存了标记,然后尝试加载它们,但我的循环无法识别lat lng 变量,它们被更改为 Sa,Ta。所以我改变了我的客户端代码,取而代之的是拉变量 Sa,Ta,没什么大不了的。

今天,我保存了另一个标记数组,尝试加载它,但它不起作用,再次将它们的原生 google api 变量名称更改为 lat Ua 和 lng Va ...我的客户端代码不适用于任何新保存的标记。

我显然没有以“谷歌”的方式保存标记,我做错了什么?

谢谢

【问题讨论】:

  • 不知道为什么我得到-1,这个问题是合法的,而且答案非常好。

标签: javascript google-maps-api-3


【解决方案1】:

您不应该依赖最小化代码的变量名。称它们为“lat”和“lon”或类似的东西。 Pa 等内部名称可能会在每次重新编译时丢失。特别是,当 Google 修复错误或发布 API 的新版本时,它们可能会发生变化。

所以不要只是盲目地对标记对象进行编码。将它们转换为您自己控制的稳定表示(而不是 Google 的自动代码编译器随意维护和更改)。

【讨论】:

    【解决方案2】:

    由于 API 似乎每隔一段时间就会发生变化,您可能希望将您的实现与它分离。随意存储经纬度,然后编写适配器将该数据映射到合适的 Google API 并在保存时返回。

    【讨论】:

      【解决方案3】:

      mongodb 不适合存储 lat/lng,因为 BSON 中没有任意精度或十进制数据类型。 mongo data types

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 2020-05-25
        • 2017-09-30
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多