OpenLayers 3.2.1 - 更改默认投影

OpenLayers 3.2.1 - Change default projection

我在尝试更改地图视图的默认投影时遇到困难。

这是一个 JSFIDDLE:http://jsfiddle.net/qtcpjape/3/

$( document ).ready(function() {
    var proj = new ol.proj.Projection({
        code: 'EPSG:4326',
        units: 'm',
        extent: [-180.0000, -90.0000, 180.0000, 90.0000]
    });

    var map = new ol.Map({
        target: 'map',
        controls: [],
        layers: [
            new ol.layer.Tile({
                source: new ol.source.MapQuest({
                    layer: 'osm'
                })
            })
        ],
        view: new ol.View({
            center: [-90.78885827595732, 38.78662388327825],
            projection: proj,
            zoom: 15
        })
    });
});

我将从 EPSG:4326 中的 REST 调用获得 GeoJSON,我想轻松映射它。

现在,我似乎无法让地图更改投影并显示实际中心。

如有任何帮助,我们将不胜感激!谢谢!

当您使用 MapQuest 瓦片时,您的地图必须在 EPSG:3857 因为 ol3 不支持光栅重投影(从版本 [=14 开始支持光栅重投影=].

例如:

var vectorSource = new ol.source.GeoJSON({
  ...
  projection: 'EPSG:3857'
});


var vectorLayer = new ol.layer.Vector({
  source: vectorSource
});


var map = new ol.Map({
    target: 'map',
    controls: [],
    layers: [
        new ol.layer.Tile({
            source: new ol.source.MapQuest({
                layer: 'osm'
            })
        }),
        vectorLayer
    ],
    view: new ol.View({
        center: ol.proj.transform([6, 49], 'EPSG:4326', 'EPSG:3857'),
        zoom: 3,
        projection: 'EPSG:3857'
    })
});

http://jsfiddle.net/qtcpjape/5/

从 OpenLayers 3.11.0 开始,现在可以重新投影光栅源。查看 release notes.

因此,只需在视图(您已经这样做)和所有源(您目前没有这样做)上明确指定投影。 OpenLayers 完成剩下的工作!