2017-04-10 46 views
-1

我有代碼:如何獲得從許多點到目的地的距離?

orig_lat = 48.864716 # Paris lat 
    orig_lon = 2.349014 # Paris lon 
    dest_lat = 52.518623 
    dest_lon = 13.376198 

    google_url = 'http://maps.googleapis.com/maps/api/' 
    fn_url = 'distancematrix/' 
    opt_url = '&language=en-EN&sensor=false' 

    url = "%s%sjson?origins=%s,%s&destinations=%s,%s&mode=driving%s" % (
     google_url, fn_url, str(orig_lat), str(orig_lon), 
     str(dest_lat), str(dest_lon), opt_url 
    ) 

    ret = requests.get(url) 

和谷歌迴應:

{ 
    "destination_addresses" : [ "Paul-Löbe-Allee, 10557 Berlin, Germany" ], 
    "origin_addresses" : [ "18bis Rue Tiquetonne, 75002 Paris, France" ], 
    "rows" : [ 
     { 
      "elements" : [ 
       { 
        "distance" : { 
         "text" : "1,045 km", 
         "value" : 1045157 
        }, 
        "duration" : { 
         "text" : "9 hours 58 mins", 
         "value" : 35905 
        }, 
        "status" : "OK" 
       } 
      ] 
     } 
    ], 
    "status" : "OK" 
} 

但我有一個目的地點和許多原點:

dest_lat = 52.518623 
dest_lon = 13.376198 

origins = [ 
    (48.864716, 2.349014), # Paris 
    (40.415363, -3.707398), # Madrid 
    (52.237049, 21.017532) # Warsaw 
] 

我想所有的持續時間和距離在一個請求中。這可能嗎?

+0

在一個請求?我不確定谷歌是否具有這種功能。也許嘗試遍歷起源,併爲每一個請求,並將結果追加到您的數據結構 – citizen2077

+0

是的,如上所述。你必須使用for循環遍歷起源! –

+0

這就是距離矩陣的作用,你有什麼問題? – geocodezip

回答

相關問題