Страница 1 из 1

Mapserver + Mapproxy и передача Querystring

Добавлено: 11 фев 2013, 15:29
dubanoze
Коллеги,
есть Mapproxy, для которого источником данных является Mapserver.
В querystring с Openlayers я передаю параметры для динамического SQL в Mapserver.
Так вот когда использовать в качестве прокси Mapproxy, Querystring теряется.
Может кто знает решение ?

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 11 фев 2013, 18:25
Denis Rykov
Если вы передаёте динамические параметры в MapServer, то в чём тогда заключается роль MapProxy в вашем случае? MapProxy - это же кэширующий прокси-сервер, а если у вас подразумеваются постоянно изменяющиеся запросы, то что тогда кэшировать?

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 07:45
dubanoze
Идеально бы хотелось учитывать при кэшировании параметры передаваемые в запросе.
Т.е. при изменении запроса кэш обновлять.
А пока в query string параметры запроса не изменились отдавать из кэша.

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 10:44
Denis Rykov
Чтобы MapProxy передавал кастомные параметры в источник, есть опция forward-req-params, то есть в вашем случае конфиг будет выглядеть так (если источник - WMS):

Код: Выделить всё

sources:
  wms_src:
    type: wms
    forward_req_params: ['sql']
    req:
      url: http://hostname
      layers: layername
      transparent: True
Если используется прямой вызов MapServer (то есть type: mapserver), то конфиг будет выглядеть чуть по-другому, но сути это не меняет. Но как будет в этом случае выглядеть процесс кэширования я не представляю. Попробуйте - отпишитесь. Я правильно понимаю, в OpenLayers слой подключается как WMS?

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 12:00
dubanoze
Denis Rykov писал(а):Чтобы MapProxy передавал кастомные параметры в источник, есть опция forward-req-params, то есть в вашем случае конфиг будет выглядеть так (если источник - WMS):

Код: Выделить всё

sources:
  wms_src:
    type: wms
    forward_req_params: ['sql']
    req:
      url: http://hostname
      layers: layername
      transparent: True
Если используется прямой вызов MapServer (то есть type: mapserver), то конфиг будет выглядеть чуть по-другому, но сути это не меняет. Но как будет в этом случае выглядеть процесс кэширования я не представляю. Попробуйте - отпишитесь. Я правильно понимаю, в OpenLayers слой подключается как WMS?
Да, слой подключен как WMS.

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 12:26
dubanoze
Нашел в мануале:

New in version 1.5.0.
A list with request parameters that will be forwarded to the source server (if available in the original request). A typical use case of this feature would be to forward the TIME parameter when working with a WMS-T server.
This feature only works with uncached sources.

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 12:43
Denis Rykov
У вас же как раз uncached sources.

Re: Mapserver + Mapproxy и передача Querystring

Добавлено: 12 фев 2013, 16:14
dubanoze
Я думал что можно будет кэшировать тайлы в рамках одного запроса.
Т.е. если параметры в query string не изменились отдавать из кэша.
Придется кэш самому писать.