2012-03-08 52 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