некоторые проблемы во время показа геосервера TIFF с OpenLAYER - PullRequest
0 голосов
/ 08 марта 2019

Я пытался использовать openlayer для показа геосервера TIF, но он показывает не правильно. Вот мои шаги:
1. Я выбираю tif из локального геосервера, например (topp: states)
2. затем пытаемся загрузить его с openlayer api

const tifMap = (target) => {

new Map({
    target,
    pixelRatio: 1,
    layers: [
      new TileLayer({
        source: new TileWMS({
            url: 'http://localhost:8080/geoserver/topp/wms',
            params: {'LAYERS': 'topp:states',  
                'BBOX': '-124.73142200000001,24.955967,-66.969849,49.371735', 
                'CRS': 'EPSG:4326', 
                'FORMAT': 'image/jpeg',
                'VERSION': '1.1.0'
            },
            serverType: 'geoserver'  
        })

      })
    ],
    view: new View({
      center: [741189, -3741196],
      zoom: 4
    })
  })
};

3. к сожалению, несколько одинаковых изображений показывают на div, я не знаю почему, на самом деле я пытался открыть ссылку (openlayer пытался получить) через браузер, она показывает нормально. enter image description here

1 Ответ

0 голосов
/ 08 марта 2019

OpenLayers автоматически создает параметры BBOX и CRS на основе проекции, заданной в параметрах источника, и сетки листов для TileWMS или окна просмотра для ImageWMS. Максимальный экстент может быть установлен либо в сетке листов (в единицах проекции сервера), либо в слое (в единицах проекции вида). Предполагая, что сервер поддерживает только EPSG: 4326, и вы хотите отобразить вывод в виде мозаики в формате EPSG: 3857, любой из них будет работать:

  new TileLayer({
    source: new TileWMS({
        url: 'http://localhost:8080/geoserver/topp/wms',
        params: {'LAYERS': 'topp:states',  
            'FORMAT': 'image/jpeg',
            'VERSION': '1.1.0'
        },
        serverType: 'geoserver',
        projection: 'EPSG:4326' 
    }),
    extent: transformExtent([-124.73142200000001,24.955967,-66.969849,49.371735], 'EPSG:4326', 'EPSG:3857')
  })

.

  new TileLayer({
    source: new TileWMS({
        url: 'http://localhost:8080/geoserver/topp/wms',
        params: {'LAYERS': 'topp:states',  
            'FORMAT': 'image/jpeg',
            'VERSION': '1.1.0'
        },
        serverType: 'geoserver',  
        projection: 'EPSG:4326', 
        tilegrid: createXYZ({extent: [-124.73142200000001,24.955967,-66.969849,49.371735]})
    })
  })
...