С 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
});