За настройки MapProxy отвечают 2 файла:
* **mappproxy.yaml** - основной файл конфигурации MapProxy;
* **seed.yaml** - файл конфигурации утилиты *mapproxy-seed*;
Настройки MapProxy описываются в текстовом формате [YAML](http://ru.wikipedia.org/wiki/YAML).
Файл **mapproxy.yaml** состоит из нескольких разделов (порядок произвольный):
* **services** - конфигурация выходных сервисов, таких как WMS, TMS, WMTS;
* **layers** - настройка слоёв, каждый слой может содержать в себе несколько источников и кэшей;
* **sources** - конфигурирование источников данных;
* **caches** - настройка кэширования;
* **grids** - настройка сетки тайлов;
* **globals** - глобальные настройки, которые могут быть использованы в
других конфигурационных директивах.
Настройка MapProxy
==================
В домашней директории создадим каталог `vegamapproxy` и в ней пустой
файл `mapproxy.yaml`:
cd ~
mkdir vegamapproxy && cd vegamapproxy && touch mapproxy.yaml
Настройка сервисов (**services**)
---------------------------------
По крайней мере один сервис должен быть определён. Описание сервиса
представляет собой словарь YAML, корневой элемент которого -
тип сервиса. Сервис может не содержать настроек, но в любом случае после
названия типа сервиса долже стоять знак `:`.
Для начала создадим WMS-сервис с использованием MapProxy, то есть
некоторую обёртку, которая снаружу будет выглядеть как WMS, но фактически
будет просто пересылать запросы к основному WMS-серверу.
services:
demo:
wms:
md:
title: MapProxy WMS Proxy
abstract: This is fantastic MapProxy
contact:
organization: NextGIS
email: info@nextgis.ru
access_constraints:
The data is licensed as Creative
Commons Attribution-Share Alike 2.0
fees: 'None'
Добавление источников (**sources**)
---------------------------------
Каждый источник данных должен иметь по крайней мере *имя* и *тип*, добавим
в источники созданный на предыдущих занятиях WMS-сервис:
sources:
vega_wms:
type: wms
req:
url: http://10.22.0.9/wms
layers: water,building
transparent: true
В данном примере *vega_wms* - имя источника данных. Тип источника *wms*
требует наличия конфигурационного параметра *req*, внутри которого
следует определит как минимум URL и список слоёв, здесь
же можно указать дополнительные параметры, поддерживаемые WMS, например,
*transparent* или *format*.
Добавление слоёв (**layers**)
-----------------------------
После добавления источников следует определить слои:
layers:
- name: cascaded_test
title: Cascaded Test Layer
sources: [vega_wms]
Сохраните изменения и запустите сервер:
mapproxy-util serve-develop -b 0.0.0.0 mapproxy.yaml
Перейдите на страницу:
http://10.22.0.9:8080/demo/
В списке доступных слоёв должен появиться только что созданный:
![][03-mapproxy-02]
Попробуйте визуализировать его в QGIS, используя URL сервиса:
http://10.22.0.9:8080/service?
Настройка кэширования (**caches**)
----------------------------------
Для увеличения быстройдействия настроим кэширование. Каждый кэш
должен знать где ему брать новые данные и каким образом они должны
кэшироваться. MapProxy разбивает изображения, поступаемые от источников
данных на мелкие тайлы и выравнивает их по сетке. Настройки сетки можно
задавать самостоятельно, мы же в данном случае воспользуемся предустановленной
сеткой `GLOBAL_MERCATOR`, немного переопределив её параметры, изменив
заправшиваемую систему координат:
grids:
gridmerc:
base: GLOBAL_MERCATOR
srs: 'EPSG:3857'
caches:
test_wms_cache:
sources: [vega_wms]
grids: [gridmerc]
Добавление кэшированного слоя
-----------------------------
В секцию *layers* добавим кэшированную версию слоя, после чего эта секция
будет выглядеть следующим образом:
layers:
- name: cascaded_test
title: Cascaded Test Layer
sources: [vega_wms]
- name: test_wms_cache
title: Cached Test Layer
sources: [test_wms_cache]
Ограничение области доступности данных
--------------------------------------
Для ограничения области доступных данных определим свойство *coverage*:
sources:
vega_wms:
type: wms
req:
url: http://10.22.0.9/wms
layers: water,building
transparent: true
coverage:
bbox: [29.5089,59.6768,30.7204,60.2201]
bbox_srs: 'EPSG:4326'
Добавьте в секцию **services** сервисы TMS и WMTS и просмотрите
TMS слой в браузере (сервис `demo`).
[03-mapproxy-02]: ../img/03-mapproxy-02.png