Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openlayers 3 在openlayers 3中设置地图的投影_Openlayers 3 - Fatal编程技术网

Openlayers 3 在openlayers 3中设置地图的投影

Openlayers 3 在openlayers 3中设置地图的投影,openlayers-3,Openlayers 3,我只想将Openlayers 3.9.0的默认投影从默认的EPSG:3857转换为EPSG:4326 所以我编辑了一个基本代码,比如 var layer = new ol.layer.Tile({ source: new ol.source.OSM() }); var center = [-1.812, 52.443]; var proj = new ol.proj.Projection({ code: 'EPSG:4326', units: 'm'

我只想将Openlayers 3.9.0的默认投影从默认的
EPSG:3857
转换为
EPSG:4326

所以我编辑了一个基本代码,比如

var layer = new ol.layer.Tile({
    source: new ol.source.OSM()
});

var center = [-1.812, 52.443];

var proj = new ol.proj.Projection({
        code: 'EPSG:4326',
        units: 'm'
});

var view = new ol.View({
    center: center,
    zoom: 6,
    projection:proj
});


var map = new ol.Map({
    loadTilesWhileAnimating: false,
    loadTilesWhileInteracting:false,
    target: 'map',
    layers: [layer],
    view: view

});
如果中心像
var中心=[-1.812,52.443]它不会像应该的那样出现在英国,而是出现在地图的中心

如果我喜欢
var center=new ol.geom.Point(-1.812,52.443)我根本看不到地图。我错过了什么


谢谢,OL目前没有转换磁贴,但正在进行转换

您有两个问题:

您不应该自己实例化EPSG:4326投影,它是由OpenLayers 3完成的。您可以通过调用
ol.proj.get('EPSG:4326')
来获取投影

ol.source.OSM
源代码从仅支持
EPSG:3857
的服务加载其磁贴。由于它是一个基于XYZ的tilesource,您可能会实际使贴图工作(如果TileWord有效),但图层将无法正确定位,并且仍然处于
EPSG:3857
中。可以使用
EPSG:4326
作为视图投影,但必须使用支持该投影的背景贴图


可以在。

中找到一个可用的演示。所以,等等,我不能重新投影地图,因为我使用的唯一图层是光栅?如果我用的是光栅和矢量呢?我得把矢量重新投影到光栅上?如果我有两个不同投影的光栅层呢。谢谢你,伙计,我用的是openlayers 3.9.0版,没错。你可以变换矢量层来匹配底层的分片,但反之亦然。尽管看起来这项功能越来越接近了:嗨,阿尔文。因此,在链接的示例中,层默认为
4326
,这就是为什么视图也是
4326
。我拿到了吗-另外,如果我想有两个不同的光栅具有不同的投影,该怎么办?既然我不能重新投射光栅,我该怎么做呢?谢谢,因为视图配置为4326,所以wms层在4326中加载。同一层可能用于3857(前提是wms服务器支持)。当前不能在ol3中混合光栅投影。有关客户端重投影的详细信息,请参见Bob Holmes的回答。