Артём Светлов (dr_kitaetsc) wrote,
Артём Светлов
dr_kitaetsc

Categories:

Рендеринг картографической основы для схемы города по данным OpenStreetMap

Для создания схем маршрутов транспорта зачастую используются картографические основы Google Maps, или же ихние спутниковые снимки. Это концептуально неверно, потому что они являются обьектом авторского права, и в общем-то "правомерность публикации не подтверждена". К счастью, большинство городов с электротранспортом отрисованы на OpenStreetMap. Картографические данные распространяются под открытой лицензией, и их можно использовать в качестве картоосновы, а созданные схемы загружать на СТТС, печатать, и даже теоретически продавать за деньги.


Вкратце, схема работы OpenStreetMap выглядит так: в базе данных хранится картографическая информация, которую пользователи могут считывать, редактировать различными редакторами, и загружать отредактированные данные обратно. Эти данные можно отрендрить специальными программами, которые на выходе выдают графические файлы с картами, или же 3D-модель участка местности, или даже вычисляют маршрут между какими-нибудь деревнями, оптимизированый для велосипеда. Лююбой желающий может сделать себе карту с нужными ему обьектами и своими условными обозначениями, например уделить на ней особое внимание путевому развитию железных дорог, или кафе быстрого обслуживания. Это большое отличие от сервисов наподобие Google Maps, где рендер картинок с картами только один. Зайдите на страницу http://osm.amdmi3.ru где собранны ссылки на веб-карты сгенерированные различными рендерами, и впечатлитесь.



Сейчас мы отрендрим картографическую подложку для рисования карты ОТ какого-нибудь города в программе Maperitive http://wiki.openstreetmap.org/wiki/RU:Maperitive

Она читает файл данных в формате .osm, и генерирует растровый(PNG) или векторный (SVG) графический файл заданного размера, масштаба, и с любой схемой условных обозначений (правилами). Если область, для которой необходимо создать карту невелика, то данные можно скачать в самом maperitive. При запуске программы на дисплей выведется веб-карта. Сдвиньтесь на нужное место, и введите комманду download-osm.

Если же город большой, то сервер XAPI откажется от выполнения запроса. В таком случае, идём на http://gis-lab.info/projects/osm-export.html, там каждый день выкладываются дампы по областям бывшего СССР, а так же приведены ссылки на страницы с дампами других городов. Скачиваем osm xml. Maperitive умеет читать файлы в архивах bz2. Открывается файл данных через меню, или коммандой load-source Data/filename.osm
Наконец, если ничего не работает, то всегда можно скачать данные через основную программу редактирования карт - JOSM. http://wiki.openstreetmap.org/wiki/RU:JOSM , там есть ссылка на java-webstart. Программа запускается без установки и не требует регистрации. В ней можно скачать любую область по кускам, и сохранить в .osm-файл.

Теперь можно сохранить карту в виде графического файла. Вводим комманду export-bitmap file=Output/cityname.png width=1500
На странице http://maperitive.net/docs/manual/Commands/ExportBitmap.html указаны параметры этой комманды, используя их можно получить карту необходимого вам размера и разрешения.


Теперь самое интересное. Создаём копию файла Rules/default.txt и открываем её в текстовом редакторе Notepad++ (в Maperitive лексический анализатор немного кривоват). Читаем список самых популярных тегов в OSM: http://wiki.openstreetmap.org/wiki/RU:Howto_Map_A и руководство по написанию файлов правил: http://maperitive.net/docs/manual/Rulesets.html Попробуйте сделать специализированую карту для любителей транспорта: с указанием остановок ОТ и макдональдсами.
Есть один ньюанс - в стиле по умолчанию в строке "building : building=yes" удалите ": building=yes", а то он будет рисовать не все здания.


Несколько примеров карт отрендреных в Mapertive:

Трамвайные линии Санкт-Петербурга

Трамвайные линии Санкт-Петербурга

Карта Уручья с подписаными остановками


Карта Уручья с подписаными остановками 



Схема высотности застройки
 Карта этажности домов возле трамвайной линии

Дома расположенные дальше всего от остановок ОТ
Дома расположенные дальше всего от остановок ОТ
 
Tags: openstreetmap
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment