RU:OpenStreetView (2009)
OpenStreetView (openstreetview.org)-это проект по созданию большой базы фотографий местности и уличных фотографий под открытой лицензией. Проект предоставляет возможности загружать геотэгированные фотографии на сервер и отображать их на карте или возвращать в ответ на API- запросы. Все фотографии проверяются подходят ли они для проекта случайными людьми из числа зарегистрированных пользователей.
Автор- Джон Маккеррелл (John McKerrell). Проект был представлен на конференции State Of The Map 2009 и запущен в сентябре 2009 года.
Просмотр фотографий
На карте
Чтобы просмотреть доступные фотографии необходимо зайти на сайт openstreetview.org и перемещаясь по карте и масштабируя выбрать интересующий регион. Миниатюры фотографий будут отображаться на карте.
- В настоящее время не реализован просмотр полноразмерного изображения по клику на миниатюре. Для этого необходимо определить адрес миниатюры (в Opera для этого нужно кликнуть правой кнопкой мышки на миниатюре, потом "Копировать адрес изображения"; в IE- клик правой кнопкой на миниатюре, "Свойства", поле "Адрес URL"), заменить в его окончании "...-square.jpg" на "...-large.jpg" и вставить в адресную строку браузера.
- Пример:
http://openstreetview.org/available/a3b8105640eb70b740732d462cd0b5288a37bcaa-square.jpg
- нужно заменить на
http://openstreetview.org/available/a3b8105640eb70b740732d462cd0b5288a37bcaa-large.jpg
В Potlatch 1
Внизу слева, на панели инструментов кликнуть "Задание настроек (выбор карты- подложки)", в поле "Фото KML" ввести:
http://openstreetview.org/api/photos/locate.kml
Сохранить изменения кликнув "Ok", кликнуть "Загрузка фотографий" рядом на панели инструментов, на карте появятся метки клик по которым откроет миниатюру фотографии, клик по миниатюре откроет в новом окне полноразмерную фотографию. Подробнее см. Potlatch/Photo-mapping.
Доступ через API
Кликнув по ссылке "KML" в правом нижнем углу карты можно скачать .kml файл (статья о формате в Википедии), содержащий координаты и ссылки на миниатюры и полноразмерные фотографии в выбраной области, и который можно использовать в т.ч. для просмотра их в программе GoogleEarth.
- В настоящее время отображается на карте и экспортируется в .kml максимум 100 фотографий и с не очень хорошим алгоритмом выборки. В частности, это проявляется в том что на крупных масштабах (при достижении лимита в 100 фотографий) старые фотографии не отображаются. Чтобы гарантированно увидеть все имеющиеся фотографии необходимо выбрать меньшую область.
Так же файл .kml можно получить в в ответ на запрос вида:
http://openstreetview.org/api/photos/locate.kml?bbox=29.841865895999,59.781508212553,30.735878347134,60.060947943929
С параметрами:
- долгота_западной_границы_области,
- широта_южной_границы,
- долгота_восточной,
- широта_северной,
где на север от экватора отсчитывается положительная широта от -90 до 90, на восток от нулевого меридиана- положительная долгота от -180 до 180 градусов.
Будет передан .klm файл locate.klm вида:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<Placemark id="Photo0">
<description>
<![CDATA[<a href="http://www.openstreetview.org/available/0467217d2bbdb6892346aa7fe0633f1cc74d0340-large.jpg"><img src="http://www.openstreetview.org/available/0467217d2bbdb6892346aa7fe0633f1cc74d0340-medium.jpg" alt="" /></a>]]>
</description>
<name>Taken about 1 month ago</name>
<Icon>
<href>http://www.openstreetview.org/available/0467217d2bbdb6892346aa7fe0633f1cc74d0340-square.jpg</href>
</Icon>
<Point>
<coordinates>37.45056,55.72028</coordinates>
</Point>
</Placemark>
<Placemark id="Photo1">
<description>
<![CDATA[<a href="http://www.openstreetview.org/available/fa60e7bb696bc27b7029aac7282b1f7499f703ae-large.jpg"><img src="http://www.openstreetview.org/available/fa60e7bb696bc27b7029aac7282b1f7499f703ae-medium.jpg" alt="" /></a>]]>
</description>
<name>Taken about 1 month ago</name>
<Icon>
<href>http://www.openstreetview.org/available/fa60e7bb696bc27b7029aac7282b1f7499f703ae-square.jpg</href>
</Icon>
<Point>
<coordinates>37.44361,55.72222</coordinates>
</Point>
</Placemark>
</Document>
</kml>
- Загружаемые фотографии уменьшаются до размера 1024 на 768 пикселей. Ранее загружаемые фотографии теряли EXIF метаданные в т.ч. координаты места съёмки, дату и время. Чтобы загрузить все фотографии и добавить координаты в EXIF по ранее полученному .kml файлу и в дальнейшем использовать их, например, в JOSM при помощи модуля для отображения геотэгированных фотографий RU:JOSM/Plugins/AgPifoJ, можно воспользоваться скриптом. Для запуска скрипта требуются Perl, Wget и ExifTool.
- Однако в настоящее время загружаемые фотографии сохраняют полную информацию EXIF, в том числе время, координаты и направление (GPS Img Direction) съёмки по компасу. Чтобы получить большеразмерные версии фотографий, содержащие всю информацию EXIF о съёмке - достаточно просто скачасть данные фото, взяв ссылки на изображения из скачанного ранее kml-файла. Например с помощью bash-скрипта:
fgrep large.jpg locate.kml|sed 's/^.*a href="//;s/"><img src=.*//'|while read url;do wget -c -t 0 ${url};done
Т.е. на данный момент OpenStreetView содержит часть изображений с неполным EXIF и часть изображений с полным EXIF (загруженные после обновления кода обработчика на сайте).
Загрузка фотографий на сервер
Загрузка
- В настоящее время не реализовано геотэгирование фотографий на сайте, т.о. загружаемые фотографии должны содержать координаты места съёмки в EXIF метаданных. Подробнее см. статью о картографировании по фотографиям по фотографиям.
- В настоящее время не реализовано удаление или изменение загруженных фотографий, поэтому хорошо бы если бы они были повёрнуты нужным образом, и координаты места съёмки были бы проверены на предмет больших случайных ошибок.
В первую очередь для загрузки фотографий необходимо зарегистрировать аккаунт кликнув на главной странице "sign up" (базы пользователей OpenStreetMap.org и OpenStreetView.org не связаны).
Далее, нужно залогиниться и кликнуть "upload", после чего загрузить фотографии одним из двух способов: через веб-форму или FTP с помощью, например, FTP-клиента FileZilla. Последний вариант удобен для загрузки большого количества фотографий. Для этого в соответствии с инструкциями зайти на ftp.openstreetview.org, ввести временные логин и пароль, загрузить в корневую директорию фотографии или папки с фотографиями (не содержащие вложенных папок), обновить страничку загрузки, отметить появившиеся на ней загруженные фотографии и папки и кликнуть "process files". Через некоторое время на страничке пользователя появится предложение отправить фотографии на модерацию. После того как фотографии будут промодерированы, они появятся на карте.
Модерирование
Прежде чем фотографии станут доступны для просмотра, они модерируются тремя случайными людьми из числа зарегистрированных пользователей. Модерация имеет цели:
- Определить подходит ли фотография для проекта по содержанию. Фотографии в первую очередь должны описывать местность. Подходят пейзажи, крупные планы, фотографии важных деталей местности. Не подходят фотографии интерьеров, неба, художественные макрофото и т.п.
- Удалить с фотографий персональную информацию, которую защищает законодательство некоторых стран. В частности, люди и номерные знаки должны быть замаски́рованы или размыты.
Чтобы помочь модерировать фотографии нужно кликнуть по "Photos need moderation", откроется страница с миниатюрами фотографий. Если есть подозрение, что некоторые фотографии содержат персональную информацию, необходимо выделить их (кликами по фотографиям можно выделить или снять выделение с отдельных фотографий, кликами по "all" и "none" можно выделить или снять выделение со всех фото, вокруг выделенных фотографий появляется жёлтая рамка) и кликнуть "mask seсtions", откроется диалог для маскирования с полноразмерной фотографией. Зажав левую кнопку мыши протянуть от одного угла маскируемой области к противоположенному, выделенную область закроет чёрный прямоугольник, фокус переместится на поле "values", в котором необходимо написать хоть что-нибудь (маска не сохраниться если оставить пустым) или, желательно, краткое описание содержимого маскируемой области (person, license plate и т.п.). После этого нажать "Save tag", при этом описание замаскированной области появится в табличке снизу, чёрный прямоугольник будет отображаться на фотографии, не будет отображаться на миниатюрах, но сохранится и будет отображаться впоследствии на фотографии на карте. Кликами на "next" и "previous" можно выбрать следующую или предыдущую фотографию для маскирования из числа выделенных (диалог маскирования закроется и снова появятся миниатюры если кликнуть "close tagging area" или "next" на последней фотографии). Далее, необходимо выделить все подходящие для проекта фотографии и кликнув "safe", выделить неподходящие и пометить "unsafe", сохранить изменения "save changes" и подтвердить "ok" в появившемся диалоге, промодерированные фотографии исчезнут и появятся новые.
- Поскольку каждая фотография модерируется тремя людьми, чтобы все фотографии появлялись на карте, каждому пользователю следует модерировать в несколько раз больше фотографий чем он загружает. Так же желательно не загружать похожие фотографии, прореживать (насколько это не отражается отрицательно на информативности) фотографии вдоль маршрута.
Исходный код и разработка
Об ошибках, проблемах и пожеланиях по улучшению можно сообщать создав сообщение о проблеме на github или приняв участие в групповой переписке по электронной почте.
Исходный код открыт и его можно найти на github. Код написан на языке Ruby, использует фреймворк Rails. GitHub позволяет каждому просмотреть код, создать свою ветку, поделиться своими изменениями с другими разработчиками и предложить администратору проекта применить их.
Планируются следующие улучшения проекта и ищутся люди способные это реализовать:
- Добавить справку на OpenStreetView.org или хотя бы ссылку на эту страницу
- Выборка фотографий для отображения на карте и экспорта в .kml (/api/photos/locate запрос) осуществляется в порядке загрузки фотографий на сервер и с ограничением их количества 100 штук. Это значит, что на крупных масштабах фотографии на карте могут быть распределены неравномерно, и на распределение влияет даты загрузки фотографий в разных регионах. Нужно написать запрос для использования на крупных масштабах, который даст равномерное или пропорциональное плотности фотографий распределение, не зависящее от порядка загрузки фотографий на сервер.
- В настоящее время, к уже промодерированным фотографиям нельзя добавить теги и метаданные. Если бы добавили такую возможность, было бы удобно.
- Сделать возможным использование учётных записей пользователей OpenStreetMap.org вместо создания новых на OpenStreetView.org. Лучшим вариантом было бы использовать OpenID, но OpenStreetMap не предоставляет такую возможность. OAuth возможно можно было бы приспособить, но он не предназначен для подобных вещей. Можно было бы даже принимать имя пользователя OSM и пароль на странице OSV, и использовать OSM API для аутентификации, хотя снова это будет не идеальный вариант.
- Несколько способов загрузки фотографий.
- ...различные исправления, ошибки и предложения по улучшения из групповой переписки и сообщений о проблемах на github.
Правовая информация
Ограничения на съёмку
В некоторых странах может быть не разрешено публиковать фотографии сделанные в публичных местах если владелец объектов собственности возражает, или, даже, просто фотографировать. В таких случаях загрузка таких фотографий на OpenStreetView.org или другие похожие сервисы (например, Panoramio или GoogleMaps) может быть незаконна. Уточняйте в статье об особенностях законодательства касающиеся фотографии в разных странах и на странице обсуждения.
Использование фото для картографирования
Фотографии распространяются пользователями проекта под лицензиями допускающими их использование для картографирования OSM.
Смотрите также
- RU:Photo mapping - Картографирование по фотографиям
- OpenStreetPhoto - Другой похожий, но с некоторых пор не работающий проект