DistanceMatrixService 提供与谷歌地图不同的距离

Posted

技术标签:

【中文标题】DistanceMatrixService 提供与谷歌地图不同的距离【英文标题】:DistanceMatrixService give different distance from Google Maps 【发布时间】:2016-11-14 14:12:41 【问题描述】:

我正在使用 Google Maps DistanceMatrixService() 来获取 GoogleMaps 中两点之间的方向和距离。但是,我从该服务获得的结果与 GoogleMaps 网站上显示的结果略有不同。

当网站显示 3 公里时,我将获得 4 公里。

我知道使用 Places 而不是实际地址时可能会有所不同,但我在 api 和 website 中都使用了坐标,结果仍然不同。

这是我的代码:

//Just for example
var origin = '-27.5970141,-48.5614466';
var destination = '-27.5927353,-48.5556316';

var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix(
        origins: [origin],
        destinations: [destination],
        travelMode: google.maps.TravelMode.DRIVING,
        unitSystem: google.maps.UnitSystem.METRIC
    , callback);

map gives a distance 上的这些坐标为 3.1 公里,而服务请求上的坐标为 4.8 公里。

我需要做什么才能得到实际距离?


编辑

在进行一些测试时,我注意到我可以通过传递完整地址而不是坐标来获得正确的距离。但这给了我两个问题:

1:通常我只能访问坐标,因为它很容易存储/获取信息(必须更改系统的一些核心代码才能获取完整地址); 2:在处理地址引用较大位置的地方时,例如,地址很大的大学,起点并不总是应该在的地方。所以我不断地得到错误的位置和距离。

【问题讨论】:

4.8 公里是一条绕道路线,因为原点位于桥的“错误”一侧(它看起来确实像“坐标”,因为字符串返回完全相同的结果)。你真的想要“驾驶”距离吗?步行距离有用吗? 【参考方案1】:

包含数字的带引号的字符串不是“坐标”(字符串被发送到地理编码器,并将生成一个最近的“已知”地址),请使用 google.maps.LatLng 或 google.maps.LatLngLiteral坐标。

来自the documentation:

目的地 类型:数组

包含目的地地址字符串、LatLng 或Place 对象的数组,用于计算距离和时间。必填。

起源 类型:数组

包含源地址字符串、LatLng 或Place 对象的数组,从中计算距离和时间。必填。

//Just for example
var origin = new google.maps.LatLng(-27.5970141,-48.5614466);
var destination = new google.maps.LatLng(-27.5927353,-48.5556316);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
    origins: [origin],
    destinations: [destination],
    travelMode: google.maps.TravelMode.DRIVING,
    unitSystem: google.maps.UnitSystem.METRIC
, callback);

【讨论】:

根据您的评论和回答,我尝试按照您所说的做,但我得到了相同的结果。我什至尝试了不同的位置和坐标,但我总是得到相同类型的结果。使用坐标时,距离总是不同的。只有使用完整的地址才能获得正确的距离,但是我在问题中提到了 2 个问题。

以上是关于DistanceMatrixService 提供与谷歌地图不同的距离的主要内容,如果未能解决你的问题,请参考以下文章

微服务-服务注册与发现

微服务-服务注册与发现

SpringCloudEureka与Ribbon -服务提供者与服务消费者--服务提供者prover

是否有托管 SVN 提供商提供与 GitHub 相当的讨论工具?

比较存储库与提供者与服务[关闭]

springcloud:服务提供与调用