Uk:Slippy Map

From OpenStreetMap Wiki
Jump to navigation Jump to search

Рухома мапа (Slippy Map) – загальний термін, який визначає сучасні веб-мапи, що дозволяють вам збільшувати/зменшувати масштаб та рухати мапу вгору/вбік/вниз (перетягуючи її мишею).

Приклад рухомої мапи.

{{Slippymap|lat= 48.713 |lon= 31.915 |zoom= 6 |width= 900 |height= 300 |layer= mapnik }}

Часто посилаючись на "Рухому мапу" ми маємо на увазі мапу, що показується на головній сторінці openstreetmap.org. Вона є веб-інтерфейсом для перегляду мап створених на основі даних OpenStreetMap.

Типово рухома мапа показує тайли згенеровані для Стандартного шару OpenStreetMap, але також ми пропонуємо кілька інших шарів (стилів подання даних) для перегляду та посилання на них.

  • Ознайомтесь зі сторінкою Перегляд мапи, щоб дізнатись основ користування мапою та як посилатись на певні місця на мапі.
  • На сторінці Розгортання вашої власної рухомої мапи описуються різні способи додавання мапи на ваші веб-сайти.
  • Leaflet – бібліотека яку ми використовуємо для нашої "Рухомої мапи" (тут також можна дізнатись про те як її використовувати на власному сайті)
  • Для вбудовування показу мап в статті вікі використовується Slippy Map MediaWiki Extension.

Технічні деталі

Рухома мапа є компонентом Ajax. JavaScript працює в браузері, динамічно запитуючи фрагменти мапи з сервера у фоновому режимі (не перезавантажуючи всю сторінку), щоб забезпечити плавне пересування та масштабування. Все це відбувається завдяки бібліотеці javascript, OpenLayers або Leaflet. Мапа складається з фрагментів, які ми називаємо "Тайлами". Вони створюються та підтримуються в актуальному стані "тайловим сервером".

Створення тайлів – рендеринг

Процес створення тайлів, рендеринг – перетворення векторних даних в растрові зображення, застосування певних правил для створення зображення, є доволі ресурсовитратним процесом. Для цього використовується різноманітне програмне забезпечення – Рендери. Як правило тайловий сервер не створює тайли для кожного окремого користувача в реальному часі. Тайли створюються наперед та зберігаються у сховищі. Навіть зважаючи на це, дуже небагато програмного забезпечення можуть опрацьовувати великі обсяги даних для регулярного оновлення мапи по всьому світу.

Тайловий сервер "Стандартного" шару OpenStreetMap

Mapnik – програмне забезпечення, що використовується для рендерингу "Стандартного" шару на сайті OpenStreetMap. Mapnik також використовується і для створення інших стилів ВелоМапа та Мапа Транспорту, які також присутні серед запропонованих шарів на сайті.

Тайли стандартного шару генеруються на tile.openstreetmap.org. База даних тайлового сервера оновлюється хвилинними діфами, тож більшість змін даних будуть відтворені впродовж кількох хвилин. В минулому дані тайлового сервера оновлювались виключно на основі щотижневого дампу Planet.osm, формування якого відбувається в середу вранці (GMT/BST). Уявіть як довго треба було чекати щоб побачити свої зміни на мапі. Повний дамп Planet.osm, все ще іноді імпортується, щоб виправити будь-які проблеми застосування діфів.

Рендеринг в Mapnik в OpenStreetMap запускається через модуль сервера Apache mod tile, який було спеціально створено, щоб задовольнити вимогу OSM щодо високої продуктивності. Він також відповідає за кешування та обробку черги на ре-рендиринг тайлів. Кожен тайл має відбиток часу його створення і позначку чи треба запускати його повторний рендеринг. Рендер використовує наступні правила:

  • Якщо наявні зміни в даних в базі OSM, система намагається позначити відповідний тайл для повторного рендерингу прапором "dirty".
  • Щоразу, коли ви дивитесь на тайл, він перевіряється, чи він старше трьох днів. У такому випадку він позначається "dirty".
  • Фоновий процес створення тайлів обробляє всі тайли позначені "dirty".

Якщо ніхто не дивиться на тайли, вони не будуть часто змінюватись. Генерація тайлів відбувається на основі наявності інтересу до певної території. Позначення тайлу прапором "dirty" не впливає на позначення підлеглих тайлів цим прапором.

Якщо у відповідь на запит стану тайла ви отримуєте 'More OpenStreetMap coming soon...', це означає що для цього тайлу дані відсутні і сервер не може виконати його генерацію на ваш запит. Він вже знаходиться в черзі на рендеринг.

Ви можете дізнатись про стан тайлу через пряме посилання[Стан тайлів 1] на нього:

Додайте /status наприкінці ...

... щоб отримати дані про час його створення та чи він має прапор dirty.

Якщо ви бажаєте явним чином додати тайл в чергу на ре-рендерінг додайте /dirty наприкінці:


  1. В контекстному меню Firefox оберіть "View Page Info" та скопіюйте URL тайла з вкладки "Media". В Internet Explorer це "Analyze element" або щось схоже. Оберіть його та клацніть правою кнопкою миші на виділеному коді в DOM-Explorer. Скопіюйте/вставте посилання на тайл в адресний рядок вашого оглядача та вилучить все що йде після PNG.

Tiles@Home

В минулому у нас був ще один шар який називався "Osmarender", для створення якого використовувалась система рендерингу Osmarender, що працювала на розподіленій системі під назвою Tiles@home. Цей проєкт був припинений і шар "Osmarender" більше не доступний, однак ви можете використовувати Osmarender для створення власного рендера.

Дивіться також

Розгортання власної рухомої мапи
Додавання мапи на ваш сайт за допомогою різноманітних API.
Статичні зображення мапи
Додавання статичної мапи (StaticMaps) використовуючи теґ <img />.
Тайли
Визначення тайлів та інші пов'язані з цим посилання.
Іменування тайлів на рухомій мапі
Вирахування назв тайлів (URL файлу .png) за відомими координатами (zoom, x, y).
Шаблони URL для Mapnik, Osmarender (Tiles@Home), OpenCycleMap, CloudMade and MapQuest.
Перегляд мапи
Посібник користувача по користуванню рухомої мапи на openstreetmap.org
Параметри URL для шарів мапи
Опис того, як відбувається взаємодія з шарами на головній сторінці
Тайли стандартного шару
Орієнтований на користувача опис Стандартного шару на https://www.openstreetmap.org/