Отображение фотографий с panoramio.com
Oct. 29th, 2009 02:53 pmPanoramio предоставляет возможность отображать фотографии оттуда на своём сайте — можно получить список фотографий по указанным координатам в формате JSON. Как разбирать JSON — другой вопрос. Я попробовал яваскриптом — в общем-то, работает. Правда, я весь яваскрипт забыл, поэтому смог, подглядывая в справочник, лишь разобрать предварительно полученное. А как получить список яваскриптом — не знаю. Поэтому написал мелкий скриптик — два эха и один wget — который делает нужный список:
echo -n 'var list = eval(' > susu.js
wget http://www.panoramio.com/map/get_panoramas.php?order=popularity\&...\&size=square -O - >> susu.js
echo ');' >> susu.js
А уже из этого списка и получаю картинки: <script language="javascript" src="susu.js"></script>
...
<script language="javascript">
var count = 20;
var from = Math.round((list.count-count-1)*Math.random());
for ( var i = from; i < from + count; i++ ) {
with ( list.photos[i] ) {
document.write('<a href="'+photo_url+'" title="Photo by '
+owner_name+'. '+photo_title
+'"><img src="'+photo_file_url+'" alt="'+photo_title+'"></a>');
}
}
</script>
Список получать можно и по крону. Раз в неделю — вполне достаточно, нет смысла брать чаще. Только вот в списке почему-то оказываются лишние фотографии, немного выходящие за пределы указанного квадрата: например, вместе с университетским городком в список попадают и фотографии с середины улицы Энтузиастов.
no subject
Date: 2009-10-29 05:49 pm (UTC)XMLHttpRequest можно обернуть в что-нибудь типа var request = function(config), где config - это объект со свойствами url, params, method, onSuccess, onFailure. и тогда вызов будет выглядеть:
selfmade
О!
Date: 2009-10-29 06:02 pm (UTC)no subject
Date: 2009-10-30 04:40 am (UTC)(function(){ // })();