2012-04-19 81 views
0

我是使用API​​的新手,這就是我正在努力完成的任務,但我真的不知道如何去做。我有一個OpenCaching開發許可證和我可以訪問的URL,如:在Google Maps API中使用JSON

test.opencaching.com/api/geocache?center=38.642,-94.754&limit=2&Authorization=DevKey 

這將返回從座標38.642, -94.754 2個最接近的藏寶信息。該URL返回的線沿線的東西...

[{"name":"John Brown Hill","location":{"lat":38.55345,"lon":-94.91825}},{"name":"Ensor Farm","location":{"lat":38.7956167,"lon":-94.8052667}}] 

我試圖用這個數據使用谷歌地圖API它映射,但是我不知道我將如何將數據保存到JavaScript對象。如果我對數據進行硬編碼,我知道如何使用它,但我不知道如何從這個URL動態獲取數據。

+0

這些資源應該幫助你,請給他們讀:https://developer.mozilla.org/en/AJAX/Getting_Started,http://api.jquery.com/jQuery.ajax/ – jlaceda 2012-04-19 23:39:28

回答

0

的一種方法是使用jQuery,做這樣的事情:

$.getJSON("the_url_to_data", function(data) { 
    var map = new.google.maps.Map(document.getElementById("my_map"),{ 
    ...map params... 
    }; 

    var cache = data.list.Caches // depending on how your JSON is actually returned. 

    $.each(cache, function(i, cache) { 
     var name = cache.name; // 
     var posi = new google.maps.LatLng(cache.lat, cache.lon); 
     ...etc... 
    } 
}; 

$.getJSON返回一個JSON對象,然後匿名函數把它作爲一個參數。

var cache = data.list.Caches的例子是基於具有嵌套JSON。

這裏有從Adobe實際的例子很好的頁面。

http://labs.adobe.com/technologies/spry/samples/data_region/JSONDataSetSample.html#Example4

因此,使用您的示例數據。你可以看到「location」實際上是另一個嵌套的JSON對象。你可以通過data.location訪問它。如果你遍歷你的對象並把它們放在一個列表中,它會讓迭代更容易。然後使用相同的路徑「點」格式訪問這些較小的對象。例如循環顯示您的示例代碼,將所有data.location對象放入一個名爲coords(例如)的變量中,然後通過coords.lat & coords.lon訪問滑塊&。

[{"name":"John Brown Hill","location":{"lat":38.55345,"lon":-94.91825}},{"name":"Ensor Farm","location":{"lat":38.7956167,"lon":-94.8052667}}] 
+0

你知道我在哪裏可以找到這樣的例子嗎?我很難理解它:/ – Jax 2012-04-20 16:20:30

+0

看看我的網站http://www.oslogigs.com/mobile並看看map.js – Gareth 2012-04-20 23:32:44

+0

謝謝!我會看看我能從中找出什麼。 – Jax 2012-04-21 19:02:09