Слой WMS с новыми внутренними координатами тайлов и настраиваемой сеткой тайлов в ol 6

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

Проекция обзора также установлена ​​на 5179.

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

Но если я изменю проекцию на EPSG: 5179 и переопределю значение tilegrid, tileurlfunction, оно не наложится нормально.

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

New internal tile coordinates,

Похоже, проблема вызвана изменением функции tileUrlFunction на части.

Если tilegrid не использует верхний левый угол и применяет нижний левый угол, я был бы признателен, если бы вы могли сообщить мне, как выполнять сервис слоев WMS.

  • Мой базовый слой и функция плитки
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());
            }
          }
    );
  • Геосервер 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
      })

person Chad.K    schedule 08.01.2020    source источник


Ответы (1)


Я решил это.

proj4js 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;
}
person Chad.K    schedule 13.01.2020