2012-03-08 43 views
1

我必须使用Flickr中的两种方法才能达到我想要的效果; “photos.search方法”返回照片ID,而“geo.getLocation方法”返回每张照片ID的长和宽值。 我能够成功迭代我的搜索,以获得我的搜索区域内的每个照片ID。我的问题是如何迭代“geo.getLocation方法”中的每个图片ID,以获得它们的纬度和经度值。在flickr中追加两种方法

找到我下面的PHP代码,返回每张照片ID:

<?php 

$url = ("http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ff8c4c178209865b1ac5ee3f2d492de0&lat=51.5424&lon=-0.1734&radius=2&page=1&text=flats"); 

$xml = simplexml_load_file($url); 

foreach ($xml->photos->photo as $entry) { 
echo $entry->attributes()->id; 
echo $entry->attributes()->owner; 
echo $entry->attributes()->title; 
} 

?> 

的geo.getLocation方法的REST请求格式为:

http://api.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&api_key=xxxx&photo_id=[value] 

Yemi

回答

0

为什么不给每个当您迭代照片ID时,位置如

<?php 

$url = ("http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ff8c4c178209865b1ac5ee3f2d492de0&lat=51.5424&lon=-0.1734&radius=2&page=1&text=flats"); 

$xml = simplexml_load_file($url); 

foreach ($xml->photos->photo as $entry) { 
    echo $entry->attributes()->id; 
    echo $entry->attributes()->owner; 
    echo $entry->attributes()->title; 
    $xmlloc = simplexml_load_file("http://api.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&api_key=xxxx&photo_id=" . $entry->attributes()->id); 
// process XML file 
} 

?> 
+0

我实现了你的编辑,它一直返回错误:致命错误:在第11行的C:\ ... \ search.php中超过60秒的最大执行时间..(第11行是你的编辑行) – akinboj 2012-03-08 15:11:52

+0

这就是API的超时问题,而不是代码问题。您下载了多少张照片 - 可能是因为您超出了API限制。 – 2012-03-08 15:30:27

+0

我将per_page参数解析为(50)以减小结果大小,并且它不再返回任何错误。所以我想你是对的,但请如何回应正在返回的经度和纬度值? – akinboj 2012-03-08 15:43:25