Как кешировать слои WMS-изображения - PullRequest
0 голосов
/ 05 апреля 2019

Я предварительно загрузил изображения с URL-адресами, содержащими запрос GetMap (как показано ниже), в тег IMG с шириной / высотой 0 пикселей и установил для отображения значение «none». Разница между URL каждого изображения состоит только в части «ВРЕМЯ» (например, «ВРЕМЯ = 2019-04-05T05: 40: 00.000Z»). В FireFox Inspect я вижу каждое загружаемое изображение.

Пример URL: https://maps.dwd.de/geoserver/wms?version=1.3.0&request=GetCapabilities&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png; Режим = 8bit & ПРОЗРАЧНО = истина & СЛОЕВ = DWD: RX-Produkt & TIME = 2019-04-05T05: 40: 00.000Z & СВК = EPSG: 3857 & ТИПОВ = & ШИРИНА = 407 & ВЫСОТА = 406 & BBOX = 697105.6892639723,6166327.945821739,1692621.5456501078,7159397.8173027495

Предварительная загрузка (в случае загрузки только один шаг):

$('<img />')
   .attr('id', 'img1')
     .attr('src', URL)
     .appendTo('div#map-1')
     .css({
         'position': 'relative',
         'display': 'none',
         'height': 0,
         'width': 0
     })
  ;

Если я загружаю WMS-слой и теперь меняю его источник, наводя курсор на временной шкале (при каждом наведении курсора изменяется только временная часть URL-адреса WMS-слоя), результирующий png-файл с WMS-сервера загружается с WMS-сервера еще раз (хотя URL-адрес точно такой же, как и при предварительной загрузке).

Скриншот моего сайта: https://www.kambeel.nl/data/wms.png

Каждое наведение мыши на время / дату приводит к срабатыванию этого (где TIME - это временная метка ISO8601, а LYR - это имя слоя):

window['WMS-1'].getSource().updateParams({'LAYERS': LYR, 'TIME': Time});

При просмотре проверки Firefox я вижу, что png с точно таким же URL-адресом, что и при предварительной загрузке, загружается снова.

Как я могу предотвратить повторную загрузку с этих png'ов?

...