OpenLayers 5 wms мозаичная карта с проекцией Галла-Петерса - PullRequest
0 голосов
/ 27 февраля 2019

С OL5 я пытаюсь использовать карту с проекцией Галла-Петерса с таким определением:

var projname = 'EPSG:22';
var projdef = '+proj=cea +lon_0=0 +lat_ts=45 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs';
var petersProjection = new Projection({
    code: projname,
    units: 'm',
    extent: [-14192432.0000000000000000,-8984819.0000000000000000, 14192432.0000000000000000,8928365.0000000000000000]
});
proj4.defs(projname, projdef);
register(proj4);

GeoServer используется для обслуживания карты как WMS и WMTS также в проекции Галла-Петерса.

В клиенте OL карта не пересекает меридиан 180 °.Это показывает только «один мир».Когда я переключаю проекцию на EPSG: 4326 или EPSG: 3857, я получаю непрерывную упакованную карту.

Я застрял здесь.Что-то не так с моим определением проекции?OL может только обернуть со стандартными проекциями?Как я могу получить упакованную карту в проекции Галла-Петерса?

Для справки, вот мои определения слоя, вида и карты:

var basiskarte_source = new TileWMS({
    url: geoserver_url,
    serverType: 'geoserver',
    params: {'FORMAT': 'image/png', 
            'VERSION': '1.1.1',
            TILED: true,
            LAYERS: 'eg:basiskarte',
            tilesOrigin: -180 + "," + -90,
            srs: 'EPSG:22'
            },
    projection : petersProjection
});
var wms_geoserver_tiled_layer =  
  new TileLayer({
      title : 'gall-peters-map',
      type : 'base',
      visible : true,
      source: basiskarte_source
}); 
var myview = new View({
    center: fromLonLat([36.8394, -1.2743], petersProjection), 
    projection: projectionInUse,
    zoom: 1,
    rotation: deg2rad(180)  
});
var map = new Map({
  target: 'map',
  layers: [
      new LayerGroup({
          title : 'Basiskarte',
          layers: [wms_geoserver_tiled_layer]
      }) 
  ],
  view: myview
});
...