• G GaladrielMap
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Запросы на слияние 0
    • Запросы на слияние 0
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Метрики
  • Аналитика
    • Аналитика
    • Поток ценности
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Коммиты
Свернуть панель
  • Калачихин Владимир Юрьевич
  • GaladrielMap
  • Wiki
  • mapCache

mapCache · Изменения

История страницы
add mapCache создал Ноя 26, 2023 по автору Stager's avatar Stager
Показать
Построчно Рядом
mapCache.md 0 → 100644
Просмотреть страницу @638f0124
## Введение
За получение из Интернет и хранение карт в комплексе программ GaladrielMap отвечает программа GaladrielCache. В каталоге GaladrielCache находится каталог `mapsources/`, где лежать файлы описания источников карт. В этих файлах содержится вся необходимая информация для получения и использования каждой карты.
Файл описания источника карты создаётся пользователем в соответствии с документацией к GaladrielCache. Комплект поставки GaladrielMap не содержит никаких карт (кроме свободной карты береговой линии), также в комплекте поставки нет никаких файлов описания источников карт, кроме файлов для нескольких свободных карт. Все другие файлы описания источников карт, которые могут оказаться вместе с набором программ GaladrielMap, созданы пользователями.
Идеологически, GaladrielCache является кеширующим прокси-сервером. Это значит, что клиентское веб-приложение GaladrielMap (картплотер) обращается за картой по интернет-адресу, определённому в его конфигурации. Адрес может указывать непосредственно на интернет-ресурс, возвращающий карту, но нормально адрес указывает на GaladrielCache. Уже GaladrielCache обращается к интернет-ресурсу за картой, получает требуемое и отдаёт клиентскому приложению GaladrielMap, одновременно сохраняя полученное на своём сервере для дальнейшего использования. При повторном обращении к этой карте она не будет снова скачиваться из Интернета, а будет показана из локального хранилища. Доступ в Интернет для этого уже не нужен.
## Формат карт
GaladrielMap использует карты в виде мозаики квадратных картинок (тайлов), непрерывно покрывающих мир в соответствии с соглашениями, принятыми для [OpenStreetMap](https://en.wikipedia.org/wiki/Tiled_web_map):
* Тайлы имеют размер 256х256 точек
* На уровне масштабирования 0 весь мир отображается на одном тайле
* Каждый следующий уровень масштабирования крупнее предыдущего вдвое, так что кадый тайл предыдущего масштаба покрывается четырьмя тайлами следующего
* Начало координат находится в точке −180 +85.0511, нумерация тайлов идёт слева направо, сверху вниз
* Проекция -- [WGS 84 / Pseudo-Mercator (Web Mercator)](https://epsg.io/3857) или [WGS 84 / World Mercator](https://epsg.io/3395)
Тайлы хранятся в файловой структуре в соответствии с соглашением [OSM slippy map](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames):
`название_карты/масштаб/x/y.расширение`
Однако, GaladrielCache позволяет пользователю заменить механизм получения тайла из локального хранилища - своим или имеющимся. В составе GaladrielCache есть средство для работы с (растровыми) картами в формате [MBTiles](https://docs.mapbox.com/help/glossary/mbtiles/). Пользователь может использовать это средство для отображения имеющейся у него карты в формате MBTiles. Детально это описано в документации к файлу описания источника карты GaladrielCache.
Основной формат тайлов в GaladrielCache -- растровые, т.е., тайл представляет собой просто картинку в одном из обычных графических форматов. Однако, ничего не мешает использовать векторные тайлы -- всё необходимое для их поддержки есть. Однако, большое разнообразие форматов, большой объём и в целом отсутствие стандартов делают применение векторных тайлов нецелесообразным.
Что касается не-тайловых векторных форматов -- пока их поддержка отсутствует.
## Файл описания источника карты
В файле описания источника карты содержится информация о способе получения карты из сети Интернет или локального файла, включая не только адрес в Интернет, но и какие-то дополнительные процедуры для обеспечения успешности получения, если надо. Кроме того, в файле содержатся параметры для обхода блокирования скачивания карты, если таковое применяется, и различная дополнительная информация, как то:
* срок актуальности тайла. По истечении этого срока тайл будет снова получен из Интернет.
* список "мусорных" тайлов: тайлов, которые сохранять не надо. Например, некоторые карты не покрывают весь мир, но для не покрытых территорий их сервер отдаёт картинку - заполнитель. Хранить такую картинку бессмысленно, а место она занимает.
* информация для контроля доступности источника карты. Это хеш-сумма определённого тайла. Имеется специальная программа, которая из каждого файла описания источника карты читает эту информацию и пытается получить от источника этот тайл. Если не удаётся -- она заносит сообщение в специальный журнал. Предполагается, что эта программа периодически запускается посредством cron. Однако, пользователь должен сам настроить запуск и сам следить за журналом.
* процедура обработки тайла перед показом, если необходимо. Процедура может быть любой, а одно из полезных применений -- замена одного цвета на прозрачный. Если таким образом заменить цвет моря на топокарте на прозрачный, то эту топокарту можно показать поверх морской карты, и получить морскую карту с подробной береговой обстановкой.
## Обслуживание хранилища
В составе GaladrielCache имеется утилита для очистки хранилища от "мусорных" тайлов. Её можно использовать для очистки всего хранилища:
`php clearCache.php`
или какой-то одной карты:
`clearCache.php MapName`
Можно также удалить и устаревшие тайлы, срок актуальности которых истёк. Для этого надо добавить в конце параметр `fresh`:
`clearCache.php fresh` или `clearCache.php MapName fresh`
Клонировать репозиторий

Введение

  • Выбор архитектуры
  • Состав программного комплекса
  • Аппаратные требования
  • Общие программные требования
  • Получение, хранение и использование карт
  • Картплотер
    • Основной экран
    • Меню
      • Карты
      • Скорость и направление
      • Пути
      • Маршрут
      • Места и маршруты
      • Человек за бортом
      • Загрузки
      • Параметры
  • Панель приборов