OpenLayers 5 wms平铺的地图包裹,带有Gall-Peters投影

时间:2019-02-27 10:17:48

标签: javascript openlayers wms

对于OL5,我正在尝试使用具有以下定义的Gall-Peters投影的地图:

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用于在Gall-Peters投影中作为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
});

0 个答案:

没有答案