You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Инструкции по настройке кеширования части глобальной карты для возможности отображения меток на глобальной карте при отсутствии доступа в интернет в дальнейшей работе

Больше о конфигурации MapProxy можно узнать из докуменатации https://mapproxy.github.io/mapproxy/5.0.0/tutorial.html

Изменение источника спутникового слоя

(warning)  TODO

Настройка кеширования

В результате настройки все запросы, полученные от внешнего ресурса будут кешироваться в файловой системе по мере запросов из UI. Комманды приведены относительно директории, в которой развернуто ПО РТЛС

  1. указать участок карты,  который нужно кешировать, добавив ограничение в файл mapproxy/seed.yaml, где bbox это диапазон координат в WGS84 [ lon_min, lat_min, lon_max, lat_max] (warning) сначала долгота (горизонтальная составляющая), потом долгота (вертикальная составляющая) 
    coverages:
      requiredcoverage:
        bbox: [37.3810 , 55.5232, 37.9482, 55.9354]
        srs: 'EPSG:4326'
  2.  при необходимости ограничить кол-во уровней зума, которые будут кешироваться - чем больше число, тем больше тайлов на него приходится, тем больше места на диске для хранения, максимально доступный уровень зума для работы с BA-UI 20
      cache_requiered:
        caches: [satellite_cache]
        # Change which zoom levels to cache
        # Each zoom level quadruples number of chached tiles
        levels:
          from: 10
          to: 20
        coverages: [requiredcoverage]
  3. запустить контейнер mapproxy 

    docker compose --profile mapcache up -d

  4.  проверить результат., открыв ссылку в браузере http://srv.rtls:18081/mapproxy/tiles/satellite/webmercator/0/0/0.png , где srv.rtls адрес сервера

Настройка доступа по HTTPS

  1. в папке конфигурации nginx изменить расширение файла mapproxy 
    mv nginx/config/mapproxy-app.conf0 nginx/config/mapproxy-app.conf
  2. если не планируется работа с BLE контейнером изменить расширение файла app 
    mv nginx/config/app.conf nginx/config/app.conf0
  3. перезапустить контейнер nginx 
    docker compose --profile mapcache restart nginx
  4. проверить результат., открыв ссылку в браузере https://srv.rtls:8443/mapproxy/tiles/satellite/webmercator/0/0/0.png , где srv.rtls адрес сервера

Отображение слоя на глобальной карте

  1. авторизоваться в CToolUI
  2. перейти в раздел Системная конфигурация
  3. в разделе Настройки глобальной карты указать ссылку на сконфигурированный ресурс https://srv.rtls:8443/mapproxy/tiles/satellite/webmercator/{z}/{x}/{y}.png, где srv.rtls адрес сервера
  4. в полях широта, долгота указать точку в пределах диапазона , заданного для кеширования в разделе Настройка кеширования
  5. указать уровень масштаба в пределах диапазона, заданного для кеширования в разделе Настройка кеширования
  6. сохранить изменения
  7. перейти в раздел Конфигурация на глобальную карту 
  8. в левом верхнем углу нажать кнопку отображения альтернативного слоя
  9. проверить что карта открывается в нужном месте с ожидаемым уровнем масштаба

Сохранение части карты

Инструкция по принудительной загрузке части карты с учетом уровней зума. Надо учитывать, что загрузка происходит согласно встроенному алгоритму переходов между масштабами, т.е не исключается возможность пропуска каких-то участков, рекомендуется рабочий участок дополнительно просмотреть на всех уровнях зума, что заполнит пропущенные участки в процессе просмотра с клиента.

  1. запустить процедуру кеширования, данные будут сохраняться в директории mapproxy/cache_data, параметр concurrency определяет кол-во потоков, доступных для параллельной работы, чем их больше, тем быстрее кеширование, ограничено кол-вом CPU на машине 
    docker compose exec -ti mapproxy mapproxy-seed -f /mapproxy/config/mapproxy.yaml -s /mapproxy/config/seed.yaml --concurrency 8
  2. исправить права доступа к кешу, где $UID:$UID  UID это ID пользователя, под которым запускается docker, если используется группа отличная от дефолтной, то поменять на $UID:$GID  
    docker compose exec -ti mapproxy sh -c "chown -R $UID:$UID /mapproxy/config/./cache_data"
  3. на этом этапе пока есть доступ к источнику изображений рекомендуется проверить 
  4. в случае если предполагается работа с полным отсутствием интернета, изменить список  иссточников для слоя на пустой  в файле mapproxy/mapproxy.yaml
    caches:
      satellite_cache:
        grids: [webmercator]
    #    sources: [satellite_source]
        sources: []
        cache:
          type: file
          directory_layout: tc
  5. перезапустить сервис 
    docker compose --profile mapcache restart mapproxy
  6. на демо странице модуля можно оценить результат  кеширования http://srv.rtls:18081/mapproxy/demo/?srs=EPSG%3A3857&format=image%2Fpng&wms_layer=satellite# в процессе подбора настроек

Проверка результата

  1. авторизоваться в CToolUI
  2. перейти в раздел Конфигурация на глобальную карту 
  3. в левом верхнем углу нажать кнопку отображения альтернативного слоя
  4. после активации слой карты изменится на работу с данными, поставляемыми источником, указанным в разделе Настройка кеширования 
  5. отключить доступ в интернет на сервере
  6. проверить отображение нужного участка карты без доступа в интернет 

  • No labels