Uk:Стандартний шар

From OpenStreetMap Wiki
Jump to navigation Jump to search


 Open bug tracker
Стандартний шар
OpenStreetMap Carto,osm-carto
Бакларан, Паранак і Пасай Ротонда, Пасай
Бакларан, Паранак і Пасай Ротонда, Пасай
Автор: Andy Allan та інші учасники
Slippy map: www.openstreetmap.org
Usage policy: operations.osmfoundation.org/policies/tiles/
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

Головна сторінка OSM зі стандартним шаром

Стиль OpenStreetMap Carto використовується тайловим сервером OSM з серпня 2013 року. Ви можете ознайомитись зі статистикою генерації тайлів серверами OSM та також дізнатись про процес створення тайлів.

Тайли на загальних масштабах (z0-z12) повністю перестворюються тільки під час публікації нової версії OSM Carto, а також першої суботи кожного місяця[2]. Запити на зміну схеми бази даних мають надсилатись не частіше ніж двічі на рік (можливо у поєднанні з оновленням версії PostgreSQL).

Якщо ви використовуйте тайли створені тайловим сервером openstreetmap.org в сторонніх застосунках, ви маєте дотримуватись Правил використання тайлів.

Об’єкти, що показуються на мапі

Оскільки цей стиль містить опис багатьох об’єктів, а перелік об’єкті в легенді мапи на головній сторінці OSM.org дуже обмежений – дивіться докладний перелік на Standard tile layer/Key та на підсторінках, щоб отримати найповнішу та найсучаснішу версію опису легенди:

Основна стаття: SymbolsTab
Основна стаття: LinesTab
Основна стаття: AreasTab

Основні зміни

Порівняння OSM Carto 2017 зі старою версією (Лондон, масштаб z10)
  • 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, якщо у вас є бажання взяти участь в процесі розробки.

Якщо ви й досі не визначились з чого почати, спитайте про допомогу (наприклад, прокоментувавши один з тікетів).

Досвідчені розробники також можуть приєднатись о проєкту та допомогти виправити складні проблеми. Серед таких:

Відгалуження та незалежні розробки

Крім OSM.org osm-carto також використовується іншими незалежними сервісами, наприклад OSM Japan та Geofabrik Maps.

OpenStreetMap Carto також використовується як база для створення інших стилів, серед них:

Векторні рішення та тестування:

Також існує окремий проєкт, який називається OpenGeofiction (OGF), він використовує стек OSM, включаючи стиль osm-carto для створення мапи – для створення мапи вигаданої місцевості.

Зовнішні посилання

Загальні:

Історичні:

Блоги:

Списки розсилки:

Зноски