如何使用谷歌距离矩阵API返回“公里”单位的距离?

3
我正在使用 Google 的距离矩阵 API(Java 版本)。我的代码可以正常工作,但我希望它会以千米为单位返回两个纬度-经度点(起点、目的地)之间的距离。然而,API 没有提供返回以千米为单位的方法或参数。但是,如果距离值大于等于1千米,则API将返回以千米为单位的距离。但是我希望它总是以千米为单位返回距离(例如0.5公里),但当距离小于1公里时,它总是以米为单位返回距离。我尝试过使用 Unit.METRIC,但它没用,因为它仍然只返回以米为单位的距离。
DistanceMatrix results =  DistanceMatrixApi.getDistanceMatrix(context, 
                    new String[] {origins}, new String[] {destinations}).units(Unit.METRIC).await();

results.rows[0].elements[0].distance //returns in meters, i want it in kms.

1
仅除以1000不就足够了吗? - c0der
不,因为我在谷歌的距离矩阵API文档中看到了一些结果,它们返回的距离值是以“公里”为单位的。示例链接在这里:[链接][https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101,-73.891889&destinations=40.6655101,-73.891009] - jarvo69
如果有时API返回的距离已经是以公里为单位,而我按照你建议的方式除以或乘以某个数字(比如1000),那么一切都会出错。我觉得这不是解决办法。 - jarvo69
文档https://developers.google.com/maps/documentation/distance-matrix/intro 表示:“此单位系统设置仅影响距离字段中显示的文本。距离字段还包含始终以米为单位表示的值。” - antonio
明白了。谢谢。 - jarvo69
2个回答

8

根据文档,您只需添加units参数:

https://maps.googleapis.com/maps/api/distancematrix/json?<b>units=metric</b>

6

阅读了有关距离矩阵 API 的 Google 文档后,我得出结论:距离字段将包含始终用米表示的“值”。因此,必须除以1000才能得到“千米”中的值。


这似乎不再是情况了,因为当距离为1米时,我得到了返回值0。 - Ellisan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接