谷歌地图捕捉到不返回所有值的道路

Posted

技术标签:

【中文标题】谷歌地图捕捉到不返回所有值的道路【英文标题】:Google Maps snap to roads not returning all values 【发布时间】:2018-07-20 17:37:05 【问题描述】:

我正在向谷歌地图“Snap to Road”api 传递 99 个点的列表。我只拿回了 85 分,这意味着我缺少一些不会被抢购的积分。有没有办法把积分全部拿回来?

Observable.fromPromise(googleMapsClient.snapToRoads(
        path: bucket,
        interpolate: interpolate
      ).asPromise()).map(routeLocations => 
        console.log(routeLocations)

来自 API 的响应:

routeLocations.query.path.split('|').length
> 99
routeLocations.json.snappedPoints.length
> 85

【问题讨论】:

请提供一个minimal reproducible example 来证明您的问题(包括示例数据)。 您能否提供您的积分数据集?没有任何数据证明问题,很难分析问题。 【参考方案1】:

可以从捕捉点数组中删除某些点。通常,当原始路径数组中的点沿道路来回曲折时会发生这种情况。不幸的是,我在这个问题中看不到你的路径数组,所以让我用我的例子来解释一下。

path 参数描述的是一条连续的路径,因此您通过的点的顺序很重要。正如official documentation 所述,snap to road 返回most likely path taken by a vehicle,因此如果它们例如沿着道路来回曲折。

以下屏幕截图显示了一个可以捕捉所有三个点的良好路径示例。

现在看一下第 2 点被丢弃的示例,因为它似乎不遵循从 1 到 3 的方向,您必须前后移动。

最后,让我们考虑一个更复杂的例子:

52.14475625,20.79042166|52.14475625,20.79036802|52.14471345,20.79042435|52.14479246,20.79031706|52.14466408,20.79047531|52.14460647,20.79051822|52.1448369,20.79028487|52.14455544,20.79060137

如以下屏幕截图所示,删除了几个点(橙色点)

希望我的回答能解决你的疑惑!

【讨论】:

绝对......有些点是我们在红绿灯前停下来的,有些点靠得太近,以至于它“捕捉”到了路上的同一个点。谢谢你的解释。

以上是关于谷歌地图捕捉到不返回所有值的道路的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 中添加捕捉到道路谷歌地图

插值谷歌地图android道路

谷歌地图 api 密钥有效,但道路 apikey 无效

折线与Bing地图中的道路对齐

Android - 如何确定坐标是不是位于谷歌地图中的道路上

谷歌地图道路 api 循环 - 如何停止