Uk:Стандартний шар
Стандартний шар OpenStreetMap Carto,osm-carto | |
---|---|
Бакларан, Паранак і Пасай Ротонда, Пасай | |
Автор: | Andy Allan та інші учасники |
Slippy map: | www |
Usage policy: | operations |
Tiles license: | CC-BY-SA 2.0 |
Style website: | gravitystorm/openstreetmap-carto GitHub |
Style license: | CC0 1.0 GitHub |
Версія: | 5.7.0 releases (2023-01-11) |
Стиль рендера Mapnik для створення Стандартного шару OpenStreetMap |
Стандартний шар – є типовим шаром мапи на головній сторінці OpenStreetMap. Доволі часто його згадують за назвою таблиці стилів "OpenStreetMap Carto GitHub"[1] (OSM Carto або скорочено osm-carto).
Повідомлення про помилки можна надсилати сюди GitHub (про вади самого стилю, проблеми з показом тих чи інших об’єктів) або сюди GitHub (про проблеми генерації тайлів на OSM.org, їх кешування й т.і.) – в обох випадках для цього потрібен обліковий запис GitHub.
Сервери OSM
Стиль OpenStreetMap Carto використовується тайловим сервером OSM з серпня 2013 року. Ви можете ознайомитись зі статистикою генерації тайлів серверами OSM та також дізнатись про процес створення тайлів.
Тайли на загальних масштабах (z0-z12) повністю перестворюються тільки під час публікації нової версії OSM Carto, а також першої суботи кожного місяця[2]. Запити на зміну схеми бази даних мають надсилатись не частіше ніж двічі на рік (можливо у поєднанні з оновленням версії PostgreSQL).
Якщо ви використовуйте тайли створені тайловим сервером openstreetmap.org в сторонніх застосунках, ви маєте дотримуватись Правил використання тайлів.
Об’єкти, що показуються на мапі
Оскільки цей стиль містить опис багатьох об’єктів, а перелік об’єкті в легенді мапи на головній сторінці OSM.org дуже обмежений – дивіться докладний перелік на Standard tile layer/Key та на підсторінках, щоб отримати найповнішу та найсучаснішу версію опису легенди:
- Основна стаття: SymbolsTab
- Основна стаття: LinesTab
- Основна стаття: AreasTab
Основні зміни
- 2012 - перехід від версії XML до CartoCSS (початок створення OSM Carto)
- 2013 - розгортання тайлового сервера OSM
- 2014 - оновлення коду для збирання стилю
- 2015 - зміна стилю показу доріг, значки в SVG
- 2016 - покращено показ підписів
- 2017 - зміна кольору водних об’єктів, покращення вигляду мапи на середніх масштабах, зміни схеми бази даних
- 2018 - додано показ офісних установ та об’єктів охорони здоров’я, нові кольори для різноманітних категорій POI
Технічні деталі
Дизайн
Стиль створено для показу стандартної багато цільової мапи світу, тому, наприклад:
- спеціалізовані об’єкти, такі як водні навігаційні знаки та деякі деталі залізниць не показуються
- підписи показуються на основі значень теґу name=*, тож назви по всьому світу не однорідні та показуються місцевими мовами
- відсутні специфічні символи, які можуть використовуватись в певних країнах, такі як позначки станцій метро, позначки автомагістралей, всі вони мають єдиний уніфікований вигляд
Поки OpenStreetMap Carto намагається показати багато різних об’єктів, неможливо відтворити все, що зберігається в базі даних, тож доводиться вибирати, що показувати, а що ні.
Для різних масштабів визначені їх типові сценарії використання GitHub.
Mapnik та CartoCSS
Тайли OpenStreetMap Carto створюються за допомогою набору інструментів Mapnik. При цьому OpenStreetMap Carto та Mapnik – це не одне і те ж! Mapnik – це бібліотека візуалізації мап, яка використовується для багатьох таблиць стилів мап (включаючи OpenStreetMap Carto).
CartoCSS використовується для попередньої обробки таблиці стилів у формат Mapnik XML (починаючи з серпня 2013).
Порядок візуалізації
Цей стиль складається з багатьох шарів. Так, наприклад назви водних шляхів показуються над водними об’єктами, значки магазинів – над полігонами будинків, дороги – поверх об’єктів земного покрову, й так далі.
Залишається питання – як об’єкти показуються всередині шару. У деяких випадках перекриття не дозволяються, а об’єкти, які охоплювали б вже створений об’єкт із заданого шару, не показуються. Так робиться, наприклад, для показу назв міст та селищ, коли назви менш важливих населених пунктів не показуються, якщо вони перекриваються назвами інших населених пунктів.
Об’єкти земного покрову впорядковуються відповідно до їх площі, так, щоб малі ділянки показувались поверх великих, також дозволяється їх перекриття.
Наприклад, невеличкий парк leisure=park буде показаний поверх великого полігону житлової забудови landuse=residential.
Існує також окремий шар накладання, що містить, наприклад, символи дерев для лісового покрову, який показується над заливкою покриття.
- невеликий полігон з деревами, позначений як landuse=forest, в середині великого полігону житлової забудови landuse=residential
- зелена заливка полігону дерев буде показана поверх заливки житлової забудови, потім до неї також буде застосований додатковий шар з символами дерев
- великий полігон landuse=forest та невеликий landuse=residential
- заливка сірим житлової зони буде показана поверх дерев, потім буде доданий шар з символами дерев, який перекриватиме і ліс і житлову зону
База даних
OpenStreetMap Carto використовує PostgreSQL з розширенням PostGIS для створення бази даних з назвою "gis". Вона походить від бази даних OSM, але містить скорочений обсяг даних – тільки те що потрібно для створення тайлів. Починаючи з версії v4.0.0, OpenStreetMap Carto використовує PostgreSQL hstore (розширення та тип даних) які обробляються за допомогою скрипта lua GitHub з osm2pgsql.
Структура коду
Загальні налаштування проєкту зберігаються в файлі project.mml GitHub (YAML). Тут визначені так звані "шари", які включають головним чином запити SQL, що вибирають об’єкти, тоді як фактичний стиль описується в кількох файлах MSS.
Код, який призначений для показу доріг дуже складний і його генерація відбувається з допомогою допоміжного скрипту.
Значки та заливки
Значки створюються з векторних зображень (SVG), як правило вони вкладаються в матрицю 14 пікселів завширшки. Хоча більшість з них є монохромними, і колір їх візуалізації визначається у файлах MSS, деякі піктограми мають більше одного кольору, і в таких випадках вони визначаються у самому векторному файлі. Можуть використовуватися напівтони.
Деякі заливки також є векторними зображеннями, але деякі все ще виконані у вигляді растрових зображень, які були отримані шляхом перетворення векторних елементів. Цей процес задокументовано GitHub, тож це має бути не складно в майбутньому перейти на використання векторних заливок.
Шрифти
По можливості використовується шрифт Noto, у випадках неможливості використовуються шрифти DejaVu Sans, Hanazono та Unifont.
Зовнішні джерела
Стиль частково покладається на деякі зовнішні дані з Natural Earth та оброблені OSM дані з репозиторію OpenStreetMapData. Вони оновлюються скриптом Python script (scripts/get-shapefiles.py GitHub) або вручну.
Процес візуалізації берегової лінії в openstreetmap.org описано в Coastline#Rendering_in_Standard_tile_layer_on_openstreetmap.org.
Участь в розробці та встановлення
Ви можете розгорнути власну копію стилю OpenStreetMap Carto. Для отримання більш докладної технічної інформації, включаючи інструкції з встановлення, зверніться на GitHub gravitystorm/openstreetmap-carto GitHub:
- Вказівки, що описують правила участі дивіться тут GitHub.
- Ви можете встановити просте Docker-based оточення GitHub для тестування.
- Ви можете подивитись деякі нескладні завдання GitHub, якщо у вас є бажання взяти участь в процесі розробки.
Якщо ви й досі не визначились з чого почати, спитайте про допомогу (наприклад, прокоментувавши один з тікетів).
Досвідчені розробники також можуть приєднатись о проєкту та допомогти виправити складні проблеми. Серед таких:
- Перехід до векторних тайлів GitHub
- Покращення загальних масштабів GitHub
- Модернізація шару доріг GitHub
Відгалуження та незалежні розробки
Крім OSM.org osm-carto також використовується іншими незалежними сервісами, наприклад OSM Japan та Geofabrik Maps.
OpenStreetMap Carto також використовується як база для створення інших стилів, серед них:
- German osm-carto style (також містить відгалуження з локалізованою версією OpenStreetMap Carto)
- French osm-carto style GitHub
- British osm-carto style (AJT) GitHub
- Swiss osm-carto style GitHub
- Belgian osm-carto style GitHub
- Japan fork of XML style GitHub (before osm-carto)
- Style for Hi-res (retina) displays GitHub
- Style for the Sahara and other desertic regions GitHub
- Style in black and white GitHub
- Style for displaying and exporting contour data GitHub
- imagico fork for testing different cartography ideas GitHub
Векторні рішення та тестування:
- osm-carto vector-tiles GitHub
- OpenStreetMap Cartographic GitHub
- Vector map basing on OSM Carto (Esri ArcGIS)
Також існує окремий проєкт, який називається OpenGeofiction (OGF), він використовує стек OSM, включаючи стиль osm-carto для створення мапи – для створення мапи вигаданої місцевості.
Зовнішні посилання
Загальні:
- Гілка на формі OSM
- Поточний стан проєкту GitHub
- OpenStreetMap Carto Tutorials – неофіційна документація (від Ircama)
- Docker things for openstreetmap carto GitHub – незалежне оточення Docker (від OnkelTem)
- Підручник про те, як показувати на мапі дороги GitHub (від Lukas Sommer)
- Pre-rendered low zoom tiles (by Paul Norman)
- поточна випущена версія – github-carto-version GitHub та поточна версія carto на https://osm.org, див git-chef line 102 (102 :revision => "vx.xx.x",)
Історичні:
- Timelapse videos of changes in osm-carto 2012-2016 (by Michael Glanznig)
- Old XML format Mapnik stylesheets for OpenStreetMap "standard" style GitHub
- Custom map style (1) - tweaking the standard OpenStreetmap style for the old, pre-2012 XML format (by Volker Schatz)
Блоги:
- OpenStreetMap Carto Complexity (Paul Norman blog, 2015)
- OpenStreetMap-Carto – a look back at the last year (Christoph Hormann blog, 2017)
- OpenStreetMap-Carto – a look into the future (Christoph Hormann blog, 2017)
- Adding a change to "OSM Carto" (Andy Townsend diary, 2017)
Списки розсилки:
- Andy Allan talks: SoTM US 2013, SoTM EU 2014, SoTM US 2015
- Rory McCann talk on SoTM 2016 ("Converting a regular carto project to vector tiles: OSM-carto case study")
- Paul Norman talk on SoTM 2017
Зноски
|