2015-06-19 111 views
0

驅動用戶位置和許多目的地之間的距離,我有很多地方一個JSON提要:計算通過javascript循環

http://hcafeeds.medcity.net/rss/er/ntx_rss_feed.xml

我計劃通過HTML5地理位置獲取用戶的位置。在這一點上,我想循環瀏覽json feed並從feed輸出項目以及它們與用戶位置的距離。

我已經試過每一種方式,我可以與谷歌地圖api,但我總是似乎打了一個小時進入方法的障礙。

有沒有人做過類似的事情?

更新:這是我現有的代碼

將輸出的醫院就好了...只是無法弄清楚如何獲得距離:

var hcafeed = 'http://hcafeeds.medcity.net/rss/er/ntx_rss_feed.xml'; 
    var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from rss where url="' + hcafeed + '"') + '&format=json&diagnostics=true&callback=?'; 
    $.getJSON(yql,function(data){ 
    if(data.query.count > 0) { 

     // Run through hospitals and set html 
     var hospitals = []; 
     $.each(data.query.results.item, function(key, val) { 
     var hospitalAddress = val.address; 
     var wait = $.trim(val.description.replace("Mins","")); 
     var units = (wait == 1) ? " Min" : " Mins"; 

     hospitals.push({ 
      'name' :  "<div class='name'>"+val.comments.replace(" ER Wait Time","")+"</div>", 
      'addy' :  "<div class='addy'>"+val.address+"</div>", 
      'phone' :  "<div class='phone'>"+val.phone+"</div>", 
      'waitOutput' : "<div class='wait'>"+wait+units+"</div>", 
      'wait' :  wait, 
      'distanceOutput' : "<div class='distance'></div>", 
     }); 

     }); 

     // Sort array by wait time (default) 
     hospitals.sort(function(a, b){ 
     return a.wait-b.wait; 
     }); 

     // Prepare array for output (wrapper) 
     var output = []; 
     $.each(hospitals, function(key, val) { 
     output.push("<div data-key='"+key+"' data-wait='"+val.wait+"' class='hospital'>"+val.name+val.addy+val.phone+val.waitOutput+val.distanceOutput+"</div>"); 
     }); 
    } 

    // Print array 
    $("#hospitals").html(output); 

    }).fail(function (j, t, e) { 
    console.error(e); 
    }); 

我創建了一個小提琴: https://jsfiddle.net/potd25yy/3/

+0

該URL不是JSON,它是XML(因爲你可能會從文件擴展名猜測)。具體來說,它是一個RSS源(您也可以從文件名中猜出)。因此,第一步是忘記Maps API,並簡單地循環訪問XML數據以提取所需的信息,並使用'console.log()'來查看您是否擁有該部分。這根本不涉及Maps API。你可以使用jQuery輕鬆完成,或者使用本地DOM調用進行更多的工作。驗證完此部分後,即可轉至Maps API工作。 –

+0

爲什麼一個小時在?您通常嘗試進行地理編碼的位置是多少? – Yaniv

+0

發佈您的代碼。你有沒有嘗試過調試?指示請求失敗時的結果是什麼?請注意,指示請求受限於使用限制。 – MrUpsidown

回答

1

而不是距離矩陣,您應該使用Directions Service in Google Maps JavaScript API來計算您的用戶的位置和您的醫院之間的路徑。

功能:

directionsService.route(request, function(response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 

返回的響應時,與多個路由。第一條路線的距離爲:

response.routes[0].legs[0].distance.text 

因此您可以將其顯示到相應條目。

我創建了一個快速演示來計算從Google,Inc.到每家醫院的距離。希望這個幫助。如果您還有其他問題,請告訴我。

https://jsfiddle.net/jqw3g914/1/