3

我正在向谷歌地图“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
4

1 回答 1

5

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

path 参数描述了一条连续的路径,因此您传递的点的顺序很重要。正如官方文档所述,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

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

在此处输入图像描述

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

于 2018-02-12T11:35:43.550 回答