Слой WMS новых внутренних координат плитки и пользовательской сетки листов в ol 6 - PullRequest
0 голосов
/ 08 января 2020

Моя карта по умолчанию в EPSG: система координат 5179, и я использую функцию tileurl с переопределением.

Для проекции вида также установлено значение 5179.

Проекция слоев Geoserver WMS на EPSG: 4326 или EPSG: 3857 По запросу он будет накладываться на мою базовую карту.

Но если я изменю проекцию на EPSG: 5179 и переопределю значение мозаичной сетки, tileurlfunction, оно не будет накладываться нормально.

Если вы посмотрите на ol v6.0.0.md,

Новые внутренние координаты плитки,

Кажется, это проблема, вызванная модификацией tileUrlFunction на детали.

Если tilegrid не использует Top-Left и применяет Bottom-Left, было бы полезно, если бы вы сообщили мне, как сделать сервис слоя WMS.

  • Мой базовый уровень и функция tileurlfunction
tilegrid
    origin: bottom-left,
    resolutions,
    extent

tileurlfunction
    return (
          (tileCoord) => {
            if (!tileCoord) {
              return undefined;
            } else {
              return template..replace(zRegEx, tileCoord[0].toString())
                .replace(xRegEx, tileCoord[1].toString())
                .replace(yRegEx, (-tileCoord[2] - 1).toString());
            }
          }
    );
  • Geoserver wmslayer
    const tileGrid = new TileGrid({
        origin: [extent[0], extent[1]],
        resolutions,
      extent
    })

    const wmsSource = new TileWMS({
        url: 'http://domain/geoserver/wms',
        params: { LAYERS: 'test:ecl_sw_p', TILED: true },
        projection: 'EPSG:5179'
        tileGrid
      })

1 Ответ

0 голосов
/ 13 января 2020

Я решил это.

proj4 js EPSG: 5181
+ axis = enu
=>
+ axis = neu

Изменить левый верхний угол указанным выше способом.

// ol/source/TileWMS.js
if (this.v13_ && axisOrientation.substr(0, 2) == 'ne') {
      let tmp;
      tmp = tileExtent[0];
      bbox[0] = tileExtent[1];
      bbox[1] = tmp;
      tmp = tileExtent[2];
      bbox[2] = tileExtent[3];
      bbox[3] = tmp;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...