存储完整的谷歌地图路线

Storing complete Google Maps route

本文关键字:谷歌地图路 存储      更新时间:2023-09-26

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

我看到有人尝试这样做的方式是序列化整个DirectionsResult对象并将其存储在数据库中。然后,当我们想要重新绘制路线时,将字符串发送回JSON。对其进行分析,然后尝试将其提供给DirectionsRenderer对象,该对象将在地图上呈现方向。这种方法有三个问题:

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

2) 这在法律上是可疑的。谷歌地图TOS说你不应该永久存储数据,从其他帖子来看,这种方法违反了它

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

我还想过尝试从路径中存储一些点,然后使用Waypoints重建它。这种方式有效,但免费API最多只能获得8分,因此这并不能保证超过这8分的准确性。此外,它还会沿着路线绘制航路点标记,我认为这可能会让用户感到困惑。

是否有一种公认的方法来存储谷歌地图上的确切路线,或者API和TOS是否是专门为防止这种情况而设计的?谢谢你的帮助。

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

当您想要再次显示路线时,存储起点和终点并让API计算出路线是不可接受的吗?

看看www.mapmyrun.com,他们正在使用谷歌地图api,当然他们正在持久化数据。然而,他们不太可能使用免费的API。