RU:Рендеринг
Под процессом рендеринга карты в основном подразумевается создание визуальной карты из сырых геопространственных данных. Часто это слово применяется в узком смысле создания растрового изображения, или набора растровых тайлов, но оно может также описывать создание карт в векторных форматах. "3D рендеринг" также может использовать картографические данные в качестве источника. Возможность рендерить карты в новых и интересных стилях или выделять на ней определённые точки - это один из важных аспектов открытого доступа к геоданным. Разработчики в сообществе OpenStreetMap и за пределами его создали много разнообразных программ для рендеринга данных OpenStreetMap. Также данные могут быть сконвертированы в другие форматы для использования в существующих рендерерах.
Рендеринг на серверах OpenStreetMap
Самые быстрые примеры рендеринга данных OpenStreetMap можно найти на стартовой странице openstreetmap.org. Щёлкнув значок '+' в верхнем правом углу, можно переключаться между слоями, отображающими разные стили рендеринга. Несколько слоёв, включая слой по умолчанию 'Mapnik', создано с использованием программы Mapnik, и один слой сделан с помощью tiles@home - распределённой системы рендеринга на основе программы Osmarender. Для более глубокого понимания инфраструктуры, используемой в рендеринге и предоставлении стилей карт, смотрите обзор компонентов.
Рендеринг несёт в себе безграничную гибкость. Многие программы поддерживают разновидности таблицы стилей для задания таких вещей как цвет, ширина линий, направление текста, значки для точек интереса, и многих других важных визуальных тонкостей.
Программы для рендеринга
Основные опции для обычного растрового 2D рендеринга:
- Mapnik - Требует PostgreSQL и различные C++ библиотеки. Сделан быстрым и подходящим для генерации тайлов на high-end серверах, но его не так просто поднять.
- Osmarender - XSLTs, выполняющий трансформацию OSM XML в SVG. tiles@home - проект, использующий Osmarender для создания набора тайлов для слоя карты в дополнение к Mapnik, Однако, Osmarender также может быть хорошим решением для однократного быстрого рендеринга. Формат SVG позволяет выполнять чистовой постпроцессинг (смотрите другие опции ниже).
Другие рендереры, включая векторные:
- Maperitive настольная программа рендеринга, работающая с локальными файлами (.osm, .osm.bz2 and GPX) по правилам рендеринга, указанным в текстовом файле. Выдаёт BMP, PNG и SVG. Не предназначена для высокопроизводительного рендеринга большого объёма данных, но гибка и проста в установке, хороший вариант для однократного рендеринга (например, карты вашего города). Также имеет генератор тайлов, отрисовку рельефа, цветовое обозначение высот и многое другое. Работает под Windows, Linux, Mac. Написана на C#
- Kosmos движок на основе GDI/.NET (Windows), работающий с локальными файлами (.osm). Правила рендеринга описаны в Вики. Не предназначен для высокопроизводительного рендеринга большого объёма данных, но гибкий, хороший вариант для однократного рендеринга. Заменён Maperitive
- CartoType - лицензированная библиотека роутинга и рендеринга. Работает под десктопной и мобильной Windows, Symbian OS. Написана на C++.
- TileMill интерфейс Mapnik для применения пользовательских настроек.
- Halcyon - AS3 (ActionScript) библиотека рендеринга, разработанная Richard Fairhurst и используемая с Potlatch2
- Mapsforge - бесплатный и свободный набор инструментов, позволяющий сообществу легко создавать новые приложения на основе OpenStreetMap. Предоставляет инструменты и API, включающие решения для рендеринга карты, навигации и планирования маршрутов, индексирования и поиска POI, накладывания карт и прочего. Написан на Java, целевая платформа, похоже, устройства Android.
- Mapweaver - преемник mapgen.pl в рендеринге на Perl, автоматическое преобразование OSM в SVG и, с помощью Inkscape, в PNG или PDF. Поддерживает списки улиц и POI, наложение сеток и координат. Автоматическое извлечение желаемого места из файла OSM. Не работает под Windows.
- Mapgen.pl - рендеринг на Perl, автоматическое преобразование OSM в SVG и, с помощью Inkscape, в PNG или PDF. Поддерживает списки улиц и POI, наложение сеток и координат. Автоматическое извлечение желаемого места из файла OSM. Не работает под Windows.
- osmrender.pl - простая программа на Perl, рисующая простые карты. Принимает *.osm на входе.
- PHP rendering - рендерер на PHP. Больше не поддерживается.
- Phprender - обновлённая версия варианта выше?
- Pyrender - набор идей и немного кода на Python для различных шагов рендеринга на сервере
- Cartagen - рендерер, основанный на HTML5 Canvas/JavaScript
- Kogutowicz - расширяемый, многоцелевой, основанный на Java движок рендеринга. Проект на стадии разработки, и пока не подходит для применения.
- Cobra - заброшенный .Net/mono движок рендеринга, производящий SVG и растр.
- Ceyx - .osm парсер и MapCSS рендерер в состоянии активной разработки. MapCSS - язык таблиц стилей, используемый Halcyon для описания внешнего вида карты. Если вам приходилось работать с HTML, то вы и здесь быстро освоитесь. Ceyx требует python, python-cairo и pygtk (для pango/pangocairo).
- Maposmatic - может рендерить карты с сеткой и индексом улиц. Написан на Python/Django + mapnik :)
- osmbrowser - может загружать большие области данных OSM и рендерить их в векторном формате. Смотрите http://github.com/wziard/osmbrowser и http://forum.openstreetmap.org/viewtopic.php?id=7901 .
- MapDiff генерирует анимацию, написан на D
- Memphis (Renderer) [1] программа и библиотека рендеринга для OpenStreetMap, написанная на C с использованием eXpat, Cairo и GLib. Лицензирована с условиями GNU Lesser General Public License.
- Hardware_accelerated_real-time_rendering - рендеринг изображений посредством видеокарты в реальном времени, взамен отображения предварительно отрисованных тайлов.
- Print OpenStreetMap with Gnuplot
- Libosmscout предлагает простые, высокоуровневые интерфейсы для функций оффлайн рендеринга и роутинга на основе данных OpenStreetMap.
- Kothic MapCSS/0.2 движок рендеринга на python.
- Kothic_JS полноценный движок рендеринга карты на JavaScript с использованием HTML5 Canvas. Изначально разрабатывался как порт Kothic на JavaScript.
- AlaCarte MapCSS движок рендеринга на C++11. Сборку под windows выкладывали в на форуме.
3D рендеринг
- OpenStreetMap 3D - 3D OSM в виде веб сервиса
- OSM2World - Инструмент на Java, создающий 3D модели из данных файлов OSM
- ShugenDoMap - Мульти-платформенный OSM 3D рендерер реального времени. Разработан для мобильных платформ, вроде смартфонов и tablet-pc.
- Kendzi3d - Плагин для JOSM - Позволяет просматривать отредактированные данные в 3D
Смотрите также
- Creating your own tiles - Разные варианты с краткими описаниями
- List of OSM based Services - в основном, список различных рендеров карты
- Category:Renderers - вики категория страниц, относящихся к рендерерам
- 3D Development
- OpenWhateverMap, карта из лоскутов различных стилей. Подходит для демонстрации возможностей, и просто прикольно!