Uk:Rendering
Процес рендерінгу (візуалізації), в основному, передбачає перетворення сирцевих геопросторових даних у графічне представлення у вигляді мап, які можна роздрукувати або поширювати іншим чином у вигляді зображення. Переважно, це слово застосовується в основному до процесу створення растрових зображень, або набору растрових тайлів, також воно може застосовуватись до створення мап заснованих на векторних даних. Під час "3D рендерінгу" також можуть бути використані картографічні дані. Можливість створювати мапи з новими цікавими стилями, або підвищити видимість деяких елементів на мапі – є одним з найцікавіших аспектів геопросторових даних з відкритим доступом. Спільнота OpenStreetMap створила широку палітру програмного забезпечення для рендерінгу даних OpenStreetMap. Дані також можуть бути перетворені в інші формати для використання з наявним у вас програмним забезпеченням.
Рендерінг на серверах OpenStreetMap
Наочні приклади рендерінгу даних OpenStreetMap, звісно, знаходяться на Головній сторінці openstreetmap.org. Клацніть на кнопку вибору шарів мапи праворуч та оберіть один із запропонованих стилів показу мапи. Ці стилі згенеровані за допомогою програмного забезпечення для рендерінгу мап Mapnik, включаючи 'Стандартний' шар. Щоб дізнатись більше про інфраструктуру залучену до рендерінгу та показу згенерованих тайлів, ознайомтесь зі статтями Component overview та Mapnik Rendering.
Рендерінг надає нам безмежні можливості для створення мап. Більшість програмного забезпечення для рендерінгу підтримує таблиці стилів для зазначення кольорів, товщини ліній, орієнтації тексту, значків для позначення об’єктів на мапі, та багато інших інші факторів, що впливають на кінцевий результат.
Сервери та інструменти командного рядка
Name | Target platforms | Target languages | License | Notes |
---|---|---|---|---|
AlaCarte | Windows, Linux | N/A | AGPL | |
Kartograph | Cross-platform | Python | AGPL | Python framework to create SVG maps |
Kothic | Cross-platform | Python | Unknown | a MapCSS/0.2 python rendering engine. |
LunaRender | Windows | Lua | MIT | XML2SVG renderer |
Mapnik | Windows, macOS, Linux | C++, JavaScript, Python, Ruby, Java | LGPL | The most popular server-side 2D map renderer. Requires PostgreSQL and various C++ libraries. Designed to be fast and is suitable for tile generation on high-end servers but it isn't particularly easy to set up. |
MapOSMatic | Cross-platform | Python | AGPLv3 | Can render maps with a grid and street index. Written in Python/Django + mapnik. |
MapSurfer.NET | Windows, Linux | C# | Proprietary | Framework for map styling and publishing (rendering, caching) geospatial data to the Web. |
node-mapbox-gl-native | Node.js | JavaScript | BSD | Node.js package for rendering Mapbox Vector Tiles using OpenGL |
osmCache | Java EE | Java | Proprietary | A Java EE servlet to control rendering and rerendering of tiles with Mapnik. |
Smrender | Cross-platform | C | GPLv3 | a rules-based rendering engine written in C |
TileServer GL | Cross-platform | BSD | Tile server for raster and vector tiles. | |
TileSweep | Unknown | C, JSX | Unknown | Tile server with prerendering using libmapnik. |
Клієнтські застосунки з графічним інтерфейсом
Name | Target platforms | License | Notes |
---|---|---|---|
Hardware accelerated real-time rendering | .Net | Proprietary | using graphics card to render images in real-time, instead of displaying prerendered tiles |
Kendzi3d | Java SE | BSD | Plugin for JOSM, allows viewing of edited data in 3D |
Kosmtik | Node.js | WTFPL | CartoCSS style development tool (style preview) based on Mapnik. |
Maperitive | Windows, macOS, Linux | Proprietary | local file (.osm, .osm.bz2 and GPX) desktop rendering application, with rendering rules defined in a text file. Generates BMP, PNG and SVG output. Not designed for high performance rendering or huge volumes of data, but easy to set up and flexible, and a good option for one-off rendering (e.g. a map of your city). It also has a tile generator, hillshading, elevation colouring and lots of other features. |
OSM2World | Java SE | LGPL | Tool that creates 3D models from OSM data files |
TileMill | Windows, macOS, Linux | 3-clause BSD | CartoCSS editor and development tool based on Mapnik. |
TopoMapCreator | Windows | GPLv2 | |
XNavigator | Java SE | GPLv2 | OSM in 3D |
Клієнтські бібліотеки
- Основна стаття: Frameworks
Name | Target platforms | Target languages | License | Notes |
---|---|---|---|---|
Cartagen | Web | JavaScript | MIT | HTML5 Canvas/JavaScript-based renderer |
Carto Mobile SDK | Android, iOS, Windows Phone | Java, Objective-C++, Swift, C# | BSD | Supports 3D city overlays, editable vector overlays and is highly customizable. |
CartoType | Windows, iOS, Android, macOS, Unix | C++ | Proprietary | Rendering and routing library |
GLMap | iOS, Android | Objective-C, Swift, Java | Proprietary | Offline or online vector map rendered on device using OpenGL ES |
Halcyon | Flash | ActionScript | WTFPL | Rendering library developed by Richard Fairhurst and used within Potlatch 2 |
Kartograph | Web | JavaScript | LGPL | JavaScript library to display vector generated maps in any browser |
Kothic JS | Web | JavaScript | BSD | Full-featured JavaScript map rendering engine using HTML5 Canvas. It was initially developed as a JavaScript port of Kothic. |
libosmscout | Linux, macOS, iOS, Windows, Android, Qt | C++, Java | LGPL | Offers simple, high-level interfaces to offline rendering and routing functionalities based on OpenStreetMap data. |
Mapbox Android SDK | Android | Java | BSD | Displays Mapbox Vector Tiles in a slippy map using OpenGL ES |
Mapbox GL JS | Web | JavaScript | BSD | Displays Mapbox Vector Tiles in a slippy map using WebGL |
Mapbox iOS SDK | iOS | Objective-C, Swift, Interface Builder | BSD | Displays Mapbox Vector Tiles in a slippy map using OpenGL ES |
Mapbox macOS SDK | macOS | Objective-C, Swift, Interface Builder, AppleScript | BSD | Displays Mapbox Vector Tiles in a slippy map using OpenGL |
Mapbox Qt SDK | Qt | C++ | BSD | Displays Mapbox Vector Tiles in a slippy map using OpenGL |
Mapbox SceneKit SDK | iOS | Objective-C, Swift | ISC | Provides data for generating custom 3D scenes in SceneKit |
Mapbox Unity SDK | Cross-platform | C# | Apache | Provides data for generating custom 3D scenes in Unity |
Mapsforge | Android, Java ME | Java | LGPLv3 | free and open toolbox that enables the community to easily create new OpenStreetMap-based applications. Provided tools and APIs include solutions for map rendering, route planning and navigation, POI indexing and search, map overlays and more. |
osm2x3d | Web | JavaScript | LGPLv3 | OSM 3D converter using native WebGL rendering (x3dom JS library) |
Tangram | Web | JavaScript | MIT | 2D and 3D map renderer using WebGL |
Tangram ES | Android, iOS, Linux, macOS | C++ | MIT | 2D and 3D map renderer using OpenGL ES |
Історія
Наступні рендери більше не підтримуються, але мають історичний інтерес:
- Hardware accelerated real-time rendering, .NET, проприєтарний, використовує можливості відео-карт для створення зображень в режимі реального часу, замість показу готових тайлів
- Kartograph – Ліцензія AGPL, фреймворк Python для створення мап в форматі SVG, офіційно припинив існування у 2016
- Kartograph, LGPL, бібліотека JavaScript для показу векторних мап в оглядачі
- Kothic JS – JavaScript, BSD, повнофункціональний механізм візуалізації карт JavaScript за допомогою HTML5 Canvas. Він був започаткований як JavaScript відгалуження Kothic.
- Kothic – GPLv3, Python, MapCSS/0.2 python рушій рендерінгу (проєкт мертвий, остання активність 2015)
- LunaRender, Windows, Lua, MIT license, XML2SVG renderer
- Mapweaver - Нащадок рендера mapgen.pl, написаного на Perl, перетворює OSM на SVG та, за допомогою Inkscape, в PNG чи PDF, автоматично створює легенду мапи. Підтримує переліки вулиць та об'єктів на мапі, а також координатні сітки. Автоматично видобуває потрібну ділянку з файла OSM. Не працює під Windows.
- Memphis – застосунок для генерації мап та бібліотека для OpenStreetMap написана на C з використанням eXpat, Cairo та GLib. GNU Lesser General Public License.
- Osm2pov – Інструмент для створення ізометричних мап з даних OSM data
- Osmarender – XSLTs що трансформує OSM XML в SVG. Проєкт tiles@home використовував Osmarender для створення тайлів для показу мапи на головній поруч з Mapnik, але Osmarender також був хорошим варіантом для одноразової візуалізації. Формат SVG дозволяє робити пост-обробку з використанням додаткових налаштувань. Він був вилучений з osm.org 1 березня 2012 року.
- osmbrowser – може завантажувати великі ділянки даних OSM і перетворювати дані у векторну графіку.
- osmrender.pl – створює прості мапи з використанням Perl. Використовує дані в форматі *.osm.
- Pyrender – колекція ідей та деякий код на Python для різних етапів створення сервера рендерингу
- VTM – cross-platform vector tile renderer developed by the OpenScienceMap project
- XNavigator, Java SE, GPLv2, 3D рендер, останній випуск 2012 згідно з інформацією на його сторінці в Вікі OSM
Дивіться також
- Creating your own tiles – Різні варіанти з коротким описом
- List of OSM based Services – переважно перелік різноманітних рендерів
- Category:Renderers – категорія вікі з інформацією про рендери
- 3D Development
- OSM on Paper