Случайно наткнулся на cайт компании
Panoramio. Разработчики этого сайта создали сервис привязывания фотографий к географическим координатам. Т.е. сделал прекрасный снимок, зашел к ним на сайт и опубликовал его, не забыв привязать к географическим координатам. Так же есть
API, которое позволяет получать информацию о фотографиях, относящихся к географическим объектам, находящимися в заданном квадрате.
Сейчас я работаю над вторым сайтом созданным для
БукТрип.ру. Для предоставления возможности
бронирования отелей собрал достаточно большую базу географических названий. Но вот для взаимодействия с API от Panoramio нужны координаты этих объектов. И эти координаты можно получить, воспользовавшись сервисом Google Geocoding. Чтобы определить координаты, надо сделать запрос к сайту maps.google.com следующего вида:
http://maps.google.com/maps/geo?q=Paris,fr&output=csv&key=ABQIAAAALkH7z-
7Yg6rN5Wgtte6WQxRhFePxzidMXG8dHw849BemzMV9YxRakAkV291BmrgJ5R_LgrNfgigIOQ
где
q — адрес искомого объекта,
output — формат ответа,
key — ключ для работы с Google Maps, который можно получить на сайте
регистрации ключа к API Карт Google. Ответом на запрос в примере будет строка
200,4,48.8566667,2.3509871
200 — код ответа (200 — успешно, 403, 602 и прочие — нет),
4 — точность определения (страна, город, улица, дом и т.п.),
48.8566667,2.3509871 — искомые широта и долгота.
Получив координаты объекта остается определить только «диаметр» зоны, фотографии объектов в которой и будут показываться. Для получения крайних точек можно просто вычесть и прибавить к координатам центра какие-то константы. Но Земля-то круглая, и точка, находящаяся на расстоянии 10 км от заданной должна вычисляться по более сложной формуле, которую я и
нашёл.
Получив от Panoramio список фотографий, путем несложных манипуляций с данными, я их вывел в виде
слайд-шоу (скрипт для создания слайд-шоу можно посмотреть на
http://www.phatfusion.net/slideshow/).
http://nobyru.blogspot.com