Описание начала работы с Mapnik и опыт использования в проекте "Космоснимки"
Обсудить в форуме Комментариев 3
Введение
Mapnik - открытая библиотека для рендеринга растровых карт из векторных данных. Она была разработана для проекта OpenStreetMap нашим соотечественником Артемом Павленко, и сегодня используется и другими ресурсами, среди которых стоит отметить EveryBlock и российские Космоснимки. Основная заявленная цель Mapnik - получение красивых карт. Данная статья кратко описывает возможности Mapnik и начало работы с ним.
Общая информация
Установка под Windows
Проверьте, все ли сделано правильно. В командной консоли, выполните:
python from mapnik import *
Если появились сообщения об ошибках, проверьте пути выше и ознакомьтесь с TroubleShooting.
Установка под UNIX
С подробной инструкцией на английском языке можно ознакомиться на сайте Mapnik.
Начало работы
Чтобы использовать Mapnik, необходимо написать скрипт на Python, вызывающий нужные его функции (пример такого скрипта из проекта OpenStreetMap). Стили можно задавать прямо в Python-коде или в отдельном XML-файле (пример).
Опыт работы с Mapnik на сайте Космоснимки
На сайте КосмоснимкиMapnik используется для отрисовки карты России масштаба 500.000, а также детальной карты Москвы.
Наши карты мы, следовательно, делали под Веб: сначала прорабатывалось содержание масштабных уровней, подготавливались данные в векторных слоях, потом этому всему задавались стили, затем с помощью Mapnik выполнялся рендеринг и тайлинг - предварительная подготовка растровых данных - нарезка на фрагменты заданной величины для быстрого показа в Интернет.
Еще одна подготовительная процедура для визуальной оценки полученного результата: до того как запускать карту на тайлинг, для примера отрисовывался какой-либо фрагмент карты. Этот способ заменял собой визуальное редактирование в векторном редакторе.
Далее несколько наблюдений из опыта применения Mapnik для данного проекта, потенциально полезных для тех, кто решит пройти испытания Mapnik самостоятельно.
FontEngine.instance().register_font("c:/mapnik_20080205/lib/mapnik/fonts/PTR76__C.PFB")
А вот какая карта у нас в итоге получилась:
Mapnik и MapServer
Mapnik конкурирует с UMN MapServer в части отрисовки качественных растровых карт из векторных данных. Следующие два примера показывают разницу между Mapnik и MapServer последних версий:
http://openstreetmap.org/?lat=42.29979&lon=-71.05548&zoom=16&layers=B0FT (Mapnik) http://boston.freemap.in/?lat=894547.08189&lon=236111.07751&zoom=7&layers=B (MapServer)
По отрисовке линий, полигонов и шрифтов возможности двух программ очень близки: обе используют AGG и FreeType с anti-aliasing. Но есть много различий в размещении надписей, и тренированный взгляд найдет достаточно проблем в обоих примерах. В целом Mapnik явно разрабатывался под новомодную стилистику Google Maps, и пока проигрывает по настраиваемости и документации более старорежимному на вид MapServer. Это добавляет разработчикам вариантов при выборе пакета для рендеринга. Christopher Schmidt, создатель OpenLayers, сначала перевел свой проект Boston Free Map с Mapserver на Mapnik, а потом обратно.
В заключение
В целом, можно сказать, что мы не слишком страдали от отсутствия графической оболочки под Mapnik, гораздо больше мучений нам доставил поиск Mapnik'овских возможностей, в отсутствие документации, а так же ряд нереализованных или "реализованных не полностью" возможностей, которые мы тщетно пытались найти, и которых не хватило для более качественного, на наш взгляд, рендеринга.
Тем не менее, Mapnik это свободное ПО, действительно позволяющее добиваться красивой отрисовки карт, лучшей, чем в более функциональных и дорогущих редакторах, типа ArcMap.
А то, чего не хватает в Mapnik, например, с точки зрения юзабилити, разнесения функций по классам и т.д. - можно надеятся, во многом восполнимо созданием пользовательской документации. Начало чему уже положено и для чего написана, в частности, данная статья.
Обсудить в форуме Комментариев 3
Последнее обновление: September 09 2021
Дата создания: 27.07.2008
Автор(ы): Георгий Потапов, Владимир Слепнёв
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).