Параметр WMS BBOX отображает не поле, а весь мир

#mapping #openlayers #openlayers-3 #wms

#сопоставление #openlayers #openlayers-3 #wms

Вопрос:

Я пытаюсь вызвать службу WMS, но параметр BBOX, похоже, не работает. Проблема в том, что значение BBOX не учитывается, и все равно отображается весь мир. Мой код выглядит следующим образом

 map = new ol.Map({   target: 'map',   layers: [
    new ol.layer.Tile({
      source: new ol.source.OSM(),name:'Map'
    }),
    new ol.layer.Image({
      name:'Fires',
      source: new ol.source.ImageWMS({
        url: 'https://firms.modaps.eosdis.nasa.gov/wms',
        params: {'LAYERS': 'fires_viirs_24','MAP_KEY':'c25ad450306982d960f6dac44bc80059',
                 'COLORS':'127 9 9','SIZE':'10','SYMBOLS':'triangle',
                 'SRS':'EPSG:3857','WIDTH':'1024','BBOX':'18.808594,34.615127,29.047852,41.902277'}
      })
    })   ],   view: new ol.View({
    center: ol.proj.fromLonLat([23.8567, 38.5204]),
    zoom: 6   }) });
  

Далее следует codepen

Ответ №1:

Некоторые параметры устанавливаются динамически, и любые заданные вами значения будут переопределены. OpenLayers устанавливает BBOX в соответствие с окном просмотра. Смотрите https://openlayers.org/en/v4.6.5/apidoc/ol.source.ImageWMS.html

ШИРИНА, ВЫСОТА, BBOX и CRS (SRS для версии WMS < 1.3.0) будут задаваться динамически.

Вы можете ограничить экстент с помощью параметра extent слоя:

  new ol.layer.Image({
      name:'Fires',
      source: new ol.source.ImageWMS({
        url: 'https://firms.modaps.eosdis.nasa.gov/wms',
        params: {'LAYERS': 'fires_viirs_24','MAP_KEY':'c25ad450306982d960f6dac44bc80059',
                 'COLORS':'127 9 9','SIZE':'10','SYMBOLS':'triangle', VERSION: '1.1.0'
                 },
        projection:'EPSG:3857',
      }),
      extent: ol.proj.transformExtent([18.808594,34.615127,29.047852,41.902277],'EPSG:4326','EPSG:3857'),
    })
  

Комментарии:

1. Просто и быстро. Большое вам спасибо!