我只想将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 center = [-1.812, 52.443];
那样它不会在英国进入,那么它就会出现在地图的中心。
如果我喜欢var center = new ol.geom.Point(-1.812, 52.443);
,我根本看不到任何地图。我在这里缺少什么?
由于
答案 0 :(得分:1)
OL当前不会转换切片,但这种方法正在发挥作用。
答案 1 :(得分:1)
您有两个问题:
你不应该自己实例化EPSG:4326投影,它由OpenLayers 3完成。你可以通过调用ol.proj.get('EPSG:4326')
来获得投影。
ol.source.OSM
来源从仅支持EPSG:3857
的服务加载其图块。由于它是基于XYZ的tilesource,您实际上可能会使地图工作(如果tilecoords有效),但该图层将无法正确定位并仍在EPSG:3857
中。您可以使用EPSG:4326
作为视图投影,但是您必须使用支持它的背景地图。
可以在official examples中找到工作演示。