RU:Рендеринг

From OpenStreetMap Wiki
Jump to navigation Jump to search

Под процессом рендеринга карты в основном подразумевается создание визуальной карты из сырых геопространственных данных. Часто это слово применяется в узком смысле создания растрового изображения, или набора растровых тайлов, но оно может также описывать создание карт в векторных форматах. "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 для применения пользовательских настроек.
  • 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, карта из лоскутов различных стилей. Подходит для демонстрации возможностей, и просто прикольно!