我可以仅针对距离和持续时间使用Google方向API吗?

时间:2011-11-25 15:23:09

标签: iphone google-maps google-maps-api-3 mapkit

在我的iPhone应用程序中,我正在使用MapKit向用户显示他的位置,我还想向他展示总时间和持续时间 到他的目的地。 我可以使用Google方向API来做到这一点吗? 我打算做的是每隔几秒询问一次方向(我知道最多2500个请求..) 并且仅显示来自对用户的响应的“方向”和“持续时间”值。

1 个答案:

答案 0 :(得分:2)

是的,你可以。

JSON响应包括距离和持续时间,例如

"duration": {
    "value": 74384,
    "text": "20 hours 40 mins"
},
"distance": {
    "value": 2137146,
    "text": "1,328 mi"
},

我建议每分钟只调用一次API。您可以使用线性插值来计算中间值(您必须估算速度以减少适当数量的距离)。

实现这个......

  1. 首先保存返回结果的时间。

    self.responseTime = [NSDate date];

  2. 计算谷歌使用的速度。

    Speed = Distance / Time

    因此,在示例中,原始单位是米和秒,所以

    Speed = 2137146 / 74384 = 28.7... ms^1

  3. 使用NSTimer经常进行定期回调。在你需要的回调中:

    1. 按响应时间后经过的时间减少时间。

    2. 通过自响应时间起计算的速度*经过的时间减去距离。

    3. 更新标签。