Nei post precedenti abbiamo richiesto a flickr una serie di informazioni, attraverso le sue API (Application Programming Interface). Mi sono chiesto che differenza ci fosse tra flickr e Panoramio, per provare a immaginare l’utilità delle due piattaforme per chi volesse utilizzarne i servizi.
La prima differenza, credo rilevante, è nella popolarità. Flickr molto probabilmente è più diffuso, offre maggiori possibilità di condivisione e creazione di gruppi di utenti.
Altra differenza è di carattere quantitativo. L’account base di flickr offre la possibilità di caricare un massimo di 200 immagini, mentre Panoramio mette a disposizione dell’utente ben 2 Gb di spazio.
Altra differenza è proprio nelle API. L’api di Panoramio è estremamente semplice, ma molto limitata rispetto alle infinite possibilità di applicazione delle API di flickr.
Detto questo, ho cercato di interrogare Panoramio, seguendo le istruzioni che offre nella pagina dedicata, e di creare una galleria di immagini.
Un grosso limite, secondo me, è quello di poter inviare richieste basate su criteri esclusivamente geografici. Mi sembra di aver capito (ma non ne sono assolutamente certo), che non è possibile chiedere le foto di un certo utente, o etichettate con un certo tag. Se la mia impressione è vera, il limite è davvero notevole (almeno per il momento).
Detto questo, ecco il codice che ho usato per creare una galleria di immagini localizzate su Napoli:
<?php
$params = array(
# possibili valori: popularity, upload_date
‘order’ => ‘popularity’,
# possibili valori: public (popular photos), full (all photos)
’set’ => ‘public’,
# intervallo numerico che individua le fotografie da prelevare
‘from’ => ‘0′,
‘to’ => ‘20′,
# minimum longitude
‘minx’ => ‘14.046020′,
# minimum latitude
‘miny’ => ‘40.798217′,
# maximum longitude
‘maxx’ => ‘14.365997′,
# maximum latitude
‘maxy’ => ‘40.904171′,
# dimensioni: original, medium (default value), small,
# thumbnail (100px di larghezza), square, mini_square
’size’ => ‘thumbnail’,
);
# questo ciclo crea un nuovo array numerico $encoded_params
$encoded_params = array();
foreach ($params as $k => $v){
$encoded_params[] = urlencode($k).’=’.urlencode($v);
}
# costruisce l’url assemblando i valori di $encoded_params
$url = “http://www.panoramio.com/map/get_panoramas.php?”.implode(‘&’, $encoded_params);
# chiama l’API e decodifica la risposta
$rsp = file_get_contents($url);
# se panoramio non risponde, manda un messaggio d’errore
if (!$rsp){
echo “errore di accesso”;
# se panoramio risponde, fa girare il codice che preleva le info delle foto
}else{
$res = json_decode($rsp);
# numero di fotografie in archivio
echo “numero di foto: ” . $res->{‘count’} . “<br /><br />”;
foreach($res->{‘photos’} as $photo){
$photo_url = $photo->photo_url;
$photo_title = $photo->photo_title;
$photo_file_url = $photo->photo_file_url;
echo ‘<a href=”‘.$photo_url.’” title=”‘.$photo_title.’”>’;
echo ‘<img src=”‘.$photo_file_url.’” title=”‘.$photo_title.’” />’;
echo ‘</a>’;
echo “\n\n”;
}
}
?>
Anche in questo caso, vale l’avvertenza dei precedenti post: non fate il copia-e-incolla, potreste avere molti errori da correggere, dato che il template di questo blog cambia automaticamente apostrofi e virgolette.
