javascript - 存储完整的谷歌地图路线

标签 javascript google-maps serialization google-maps-api-3

我希望能够轻松地在 Google map 上存储和重新显示 Google map 路线。假设从 A 点到 B 点,DirectionsResult来自 Google 的对象沿路线有 100 个点,我希望能够存储这条路线并保证下次我绘制它时方向将经过所有这些点。

我见过人们尝试这样做的方法是序列化整个 DirectionsResult 对象并将其存储在数据库中。然后,当我们想要重绘路线时,将字符串发回,JSON.Parse,然后尝试将其提供给 DirectionsRenderer。将在 map 上呈现方向的对象。这种方法存在三个问题:

1) 您在序列化过程中丢失了类型信息,并且由于 Google 缩小了对象,您无法使用类函数可靠地从对象中获取这些值。您需要在最初序列化对象时首先使用数据访问器函数构建“占位符”对象,然后在稍后解析序列化字符串时重建 Google Maps 对象。

2) 这在法律上是可疑的。 Google Maps TOS 表示您不应该永久存储数据,从其他帖子看来,这种方法似乎违反了它。

3) 对象可以很大,我序列化的一条路由超过了 64KB。

我还考虑过尝试存储路径中的几个点,然后使用 Waypoints 重建它。这种方法有效,但免费 API 最多只能有 8 个点,因此这不能保证超过这 8 个点的准确性。此外,它还会沿路线绘制航路点标记,我认为这可能会使用户感到困惑。

是否有一种公认的方法来存储来自 Google map 的准确路线,或者 API 和 TOS 是否有意设计来防止这种情况发生?感谢您的帮助。

最佳答案

我认为这在法律上是可疑的。事实上,它几乎肯定违反了 Terms of Service .正如您所指出的,它是用于提高性能以外目的的永久存储(与 10.1.3(b) 相反);但它也旨在显示方向而不通过 API 获取方向(与 10.1.1(a) 相反)。谷歌没有让它变得容易这一事实意味着他们没有授权这个用例。事实上,TOS 和 API 旨在使这样的存储变得困难,如果不是不可能的话。

当你想再次显示它时,存储起点和终点并让 API 计算出路线是否可以接受?

关于javascript - 存储完整的谷歌地图路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296407/

相关文章:

javascript - 使用 jQuery 单击操作后重新启动功能

javascript - NodeJS - 错误 : The specified procedure could not be found. bcrypt_lib.node

javascript - 如何从 GMaps 信息窗口触发 jQuery

google-maps - 谷歌地理编码中视口(viewport)和边界之间的区别

java - POJO 到字节数组与 POJO 到 json

javascript - HTML 中的嵌套类

javascript - 如果没有值,用 jquery 删除 <p> </p>

javascript - 谷歌地图,如何禁用标记图标被拖来拖去?

json - 使用 Serde 反序列化嵌套 JSON 结构时出现 "invalid type: map, expected a sequence"

serialization - 如何找到最简单的人类可读的浮点字符串,该字符串在转换回浮点时会产生相同的字节?