存储完整的Google地图路线

jar*_*etz 12 javascript serialization google-maps google-maps-api-3

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

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

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

2)这在法律上是可疑的.Google Maps TOS表示您不应该永久存储数据,而且其他帖子似乎违反了这一点.

3)对象可能很大,我序列化的一条路径超过64KB.

我还想过尝试从路径中存储几个点,然后使用Waypoints重建它.这种工作方式但是对于免费的API,你最多只能获得8分,所以这并不能保证超过这8分的准确性.此外,它然后绘制沿着路线的航点标记,我认为这可能会使用户感到困惑.

是否有可接受的方法来存储来自Google地图的确切路线,或者是否有针对性地设计API和TOS以防止这种情况发生?谢谢您的帮助.

And*_*ach 2

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

存储起点和终点并让API在您想再次显示路线时计算出路线是不是可以接受?