воскресенье, 4 октября 2015 г.

Использование изображений без географической привязки для редактирования OpenStreetMap


работа с изображенем в JOSM и PicLayer
     Иногда для редактирования данных OpenStreetMap (OSM) нам необходимо использовать бумажные карты, или другие картографические изображения не имеющие географической привязки. На примере Уссурийского заповедника рассмотрим вариант использования таких карт для оцифровки границ заповедника.


     По умолчанию, редактор данных OpenStreetMap - JOSM (Java OpenStreetMap Editor) позволяет использовать в качестве базовых карт для обрисовки местности только некоторые интернет-карты, лицензия которых позволяет их использование в  OpenStreetMap, например   Bing Aerial Imagery. Но в случае необходимости, мы можем использовать свои картографические материалы. Например, если мы хотим обрисовать границы заповедника, национального парка или любой другой особоохраняемой природной территории, у нас скорее-всего, не будет географически привязанных границ, и как базовую карту нам нужно будет использовать отсканированную бумажную карту.

     Для использования обычных изображений, таких как сканы или фотографии в роли базовой карты в  JOSM, существует специальное расширение «PicLayer». На Wiki OpenStreetMap существует страница посвященная данному расширению.

Для начала нам нужно установить расширение  PicLayer. Расширения устанавливаются по простой инструкции:
  1. В окне  JOSM открыть окно настроек ( Правка->Настройки ) и перейти на вкладку «розетка с вилкой»
  2. Нажать  «Download list», при этом будет загружен список доступных для установки модулей.
  3. В меню поиска начать вводить название расширения: Pic
  4. Отметить  PicLayer «галочкой»
  5. Нажать [OK]

Search and enable plugin PicLayer in the setting JOSM

     Для начала работы нам необходимо скачать данные OpenStreetMap на интересующую нас область.

Download OpenstreetMap data

     Далее призумливаемся к области, где должна расположиться нами добавляемая карта и в разделе меню «Изображения» выбираем пункт «New picture from file..».

Load picture in JOSM with PicLayer

    Далее нам нужно подгрузить базовую карту по которой мы будем привязывать наше изображение. Это может быт OpenStreetMap (Mapnik),  Bing Aerial Imagery или какая другая базовая карта доступная для использования в JOSM. В этом случае OpenStreetMap (Mapnik) нас устраивает.

     Для работы с изображением нам нужно сделать активным слой с ним. Для этого в списке слоев (справа вверху) устанавливаем зеленую галочку напротив нами добавленного изображения.

Activate picture in the menu of layer in JOSM

     После этого, в меню инструментов (вертикальное меню слева) появятся кнопки для работы с изображением.
кнопка инструмента PicLayer - перемещение изображения- Перемещать изображение
кнопка инструмента PicLayer - добавить точку привязки- Cоздать точку привязки
кнопка инструмента PicLayer - тянуть точку привязки- «Тянуть» точку привязки
кнопка инструмента PicLayer - удалить точку привязки- Удалить точку привязки
кнопка инструмента PicLayer - повернуть изображение- Повернуть изображение
кнопка инструмента PicLayer - масштабировать изображение пропорционально- Изменить размер пропорционально
кнопка инструмента PicLayer - масштабировать изображение вертикально- Изменить высоту изображения
кнопка инструмента PicLayer - масштабировать изображение горизонтально- Изменить ширину изображения
кнопка инструмента PicLayer - редактировать перспективу изображения- Редактировать перспективу


     Для начала, используя инструменты «изменить размер» и «переместить изображение» перемещаем изображение приблизительно туда, куда нужно. Для полее точного позиционирования делаем верхнее изображение полупрозрачным. Для этого, выделив его с списке слоев, вертикальным бегунком регулируем прозрачность.

Предварительное позиционирование карты в окне  JOSM при помощи PicLayer

     Для более точного позиционирования используем точки привязки. В роли точек привязки удобно использовать какие-то характерные элементы местности, хорошо видные на привязываемом изображении и на базовой карте, чаще всего это повороты дорог, пересечения рек и дорог, слияния рек и т.п.

     Для создания точки привязки жмем зеленую стрелочку и отмечаем точку привязки на редактируемом изображении.

Выделение точки на карте в PicLayer (JOSM), перед ее перетягиванием.

     Далее нажав красную стрелочку выделяем нашу точку привязки и с нажатой левой кнопкой мышки, тянем ее в нужное место (например к повороту дороги на базовой карте).

Совмещенная точка на карте, при помощи PicLayer в JOSM (Java OpenStreetMap)

     Таким образом, создаем три точки привязки.

     Далее, чтоб не потерять данные про привязку изображения, например при случайном падении или зависании JOSM, в списке слоев нужно, правой кнопкой мышки нажать по привязываемому изображению, и из раскрывшегося меню выбрать пункт «Save Picture Calibration...».

Карта в JOSM (Java OpenStreetMap) с 3-мя точками привязки созданными при помощи PicLayer

     Это нужно чтоб, в случае необходимости, иметь возможность загрузить корректно позиционированное изображение еще раз, без затрат времени на привязку.

     Данные про калибровку изображения сохраняются в папку с исходным изображением в текстовый файл, который называется так-же как исходное изображение, но к расширению добавляется «.cal». В нашем случае файл с информацией про калибровку называется  «ussur.jpg.cal» и содержит следующее:

#JOSM PicLayer plugin calibration data
#Sun Oct 04 19:51:05 VLAT 2015
POSITION_Y=5405884.168723326
POSITION_X=1.475669476043229E7
M12=-26.847372710146754
M11=0.14117324980359047
M10=0.005561796364654744
M02=-26.68832768987962
INITIAL_SCALE=12281.279066368912
M01=-0.00577455932923095
M00=0.13528820334770147


POSITION_X/Y - координаты центра изображения в метрах.
INITIAL_SCALE - масштаб - размер 100 пикселей изображения в метрах по масштабной линейке JOSM, во время загрузки изображения.
M00 ,M01, M02, M10, M11, M12  - аффинные коэффициенты преобразования.

     Подробнее про параметры в файле калибровки смотрите в Wiki (RU) (EN) и на странице справки JOSM.

     При следующем открытии калиброванного изображения, при помощи PicLayer, оно расположится в соответствующем месте.


     В результате работы был оцифрован Уссурийский заповедник.


     При этом в базу данных OpenStreetMap внесена подробная информация про заповедник, которая будет использована в навигационных программах использующих OSM, например таких как OsmAnd и maps.me
     
Уссурийский заповедник на OpenStreetMap

     Видеоурок по данному посту:






Комментариев нет:

Отправить комментарий