0

我不想将 flickr 照片附加到我的网页上。我正在尝试从 json 回调中检索纬度和经度值。

这是我到目前为止的代码。当我将它加载到浏览器中时,什么也没有发生。

<!DOCTYPE html>
<html>
<head>
<title>Flickr Pie Chart</title>
<meta charset="utf-8">
<script type="text/javascript" src="/jquery/jquery-1.3.2.min.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
        $("#driver").click(function(event){
            var apiKey = '[YOUR API KEY]';
            var url = 'http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key=' + apiKey +'&per_page=500&tags=losangeles&has_geo=1&extras=geo,tags&format=json&jsoncallback=?';

            $.getJSON(url, function(data){
                //loop through the results with the following function
                $.each(data.items, function(i,item){
                    var geoData +='latitude:' item.latitude + '' + '<br>';
                    geoData += '' + item.longitude;
                    $('#results').append(geoData);
                });
            });
        });
    });
</script>
</head>

<body>
    <div id = "results"></div>
    <input type="button" id="driver" value="Load Data" />
</body>
</html>
4

2 回答 2

0

这个

http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key=

应该

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=

但你会得到的回应是

<rsp stat="fail"><err code="3" msg="Parameterless searches have been disabled. Please use flickr.photos.getRecent instead."/>

这告诉你使用 flickr.photos.getRecent

于 2013-10-01T20:22:49.157 回答
0

我让它工作了。问题之一是我有 jsoncallback=? 它返回一个带有语法错误的 jsonp 文件,它没有返回 json。我在 jsonlint.com 网站上发现了错误。错误有 jsonFlickrApi({ 在文件的开头。我在 &format=json 之后添加了 &nojsoncallback=1 并且一切正常。我还在分配值之前声明了我的 geoData 变量。

这是代码:

<!DOCTYPE html>
<html>
<head>
<title>Flickr Pie Chart</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

<script type="text/javascript">

var latitude;
var longitude;

var geoData;


$(document).ready(function(){

  var apiKey = '[YOUR API KEY]';
  var url = 'http://api.flickr.com/services/rest/?&method=flickr.photos.search&api_key='+ apiKey + '&tags=losangeles&has_geo=1&extras=geo,tags&format=json&nojsoncallback=1';

$.getJSON(url, function(data){

//loop through the results with the following function
$.each(data.photos.photo, function(i,item){

  geoData += 'latitude' + ':' + item.latitude + '' + '<br>';
  geoData += 'longitude' + ':' + item.longitude;

$('#results').append(geoData);


});

});

});

</script>
</head>

<body>

<div id = "results"></div>
</body>

</html>
于 2013-10-02T20:12:18.963 回答