使用谷歌地图查找两个地址之间的距离,反之亦然来源和目的地给出不同的响应

时间:2015-04-27 08:19:24

标签: php google-maps distance

有些伙伴帮帮我?

我试图使用谷歌地图获得两个地址之间的距离但是当我有更改源和目​​标时反之亦然然后谷歌地图给我不同的响应。

第一地址:1 Airport Drive,Oakland,CA 94621,USA 第二地址:44085 Laurel Canyon Way,Fremont,CA 94539,USA

http://maps.googleapis.com/maps/api/directions/json?origin=Oakland+International+Airport+%28OAK%29,+1+Airport+Drive,+Oakland,+CA+94621,+USA&destination=44085+Laurel+Canyon+Way,+Fremont,+CA,+United%20States&sensor=false

响应:

   "routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 37.7311528,
           "lng" : -121.932651
        },
        "southwest" : {
           "lat" : 37.5066302,
           "lng" : -122.2137008
        }
     },
     "copyrights" : "Map data ©2015 Google",
     "legs" : [
        {
           "distance" : {
              "text" : "24.6 mi",
              "value" : 39536
           },
           "duration" : {
              "text" : "33 mins",
              "value" : 1982
           },

http://maps.googleapis.com/maps/api/directions/json?origin=44085+Laurel+Canyon+Way,+Fremont,+CA,+United%20States&destination=Oakland+International+Airport+%28OAK%29,+1+Airport+Drive,+Oakland,+CA+94621,+USA&sensor=false

响应:

"routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 37.7325325,
           "lng" : -121.932675
        },
        "southwest" : {
           "lat" : 37.5081351,
           "lng" : -122.2137008
        }
     },
     "copyrights" : "Map data ©2015 Google",
     "legs" : [
        {
           "distance" : {
              "text" : "24.2 mi",
              "value" : 38993
           },
           "duration" : {
              "text" : "31 mins",
              "value" : 1839
           },

在给定的响应对象distance-> text和distance->值中,两者的响应不同。

我无法理解相同的地址是否会发生这种情况。

3 个答案:

答案 0 :(得分:0)

Google地图使用两点之间的公式距离找不到距离,而是根据路线计算距离。

到达目的地有多种路线。因此,当您反之亦然时,它可能采取了另一种方式。

答案 1 :(得分:0)

如果你看谷歌地图(不是API),你会发现路线不一样。

机场周围经常出现这种情况。

答案 2 :(得分:0)

谷歌针对路线的距离算法算法。因此,对于相同的起点和终点,距离和持续时间会有所不同。它还会考虑流量并为您提供最佳的优化路线,因此如果它们被翻转,您无法控制API在相同的起点和终点返回的距离和持续时间。

一种解决方法是指定落在从原点到目的地和目的地到目的地的每条路线之间的航点,以便路线没有变化,并且可能在两个方向上返回相同的距离。