Openlayers 3 在openlayers 3中设置地图的投影
我只想将Openlayers 3.9.0的默认投影从默认的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'
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的回答。