Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON与Google Maps API结合使用_Javascript_Json_Api_Google Maps - Fatal编程技术网

Javascript 将JSON与Google Maps API结合使用

Javascript 将JSON与Google Maps API结合使用,javascript,json,api,google-maps,Javascript,Json,Api,Google Maps,我对使用API还不熟悉,这正是我想要完成的,但我真的不知道如何去做。我有一个OpenCachingdeveloper密钥,可以访问如下URL: test.opencaching.com/api/geocache?center=38.642,-94.754&limit=2&Authorization=DevKey 它将返回坐标38.642,-94.754中最近的两个地理缓存的信息。URL返回的内容大致如下: [{"name":"John Brown Hill","location

我对使用API还不熟悉,这正是我想要完成的,但我真的不知道如何去做。我有一个
OpenCaching
developer密钥,可以访问如下URL:

test.opencaching.com/api/geocache?center=38.642,-94.754&limit=2&Authorization=DevKey
它将返回坐标
38.642,-94.754
中最近的两个地理缓存的信息。URL返回的内容大致如下:

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

我试图使用GoogleMapsAPI来映射这些数据,但我不知道如何将数据保存到JavaScript对象。如果我在中硬编码数据,我知道如何使用它,但我不知道如何从该URL动态获取它。

一种方法是使用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示例

因此,请使用您的示例数据。您可以看到,“location”实际上是另一个嵌套的JSON对象。您可以通过
data.location
访问它。如果在对象上循环并将它们放在列表中,只会使迭代更容易。然后使用相同的路径“点”格式访问这些较小的对象。e、 g.循环您的示例代码,将所有
数据.location
对象放入名为
coords
(例如)的变量中,然后通过
coords.lat
coords.lon
访问lats和lon

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

这些资源应该对您有所帮助,请阅读:,您知道我在哪里可以找到这些示例吗?我很难理解它:/谢谢!我将看看我能从中得出什么。你能详细说明一下“var cache=data.list.Caches”如何根据JSON的返回方式而变化吗?谢谢!这帮了大忙。我还发现,由于跨域限制,我必须在URL末尾添加“&callback=?”以请求JSONP响应。