OpenLayers 4 创建地图时无法居中定位问题咨询
解决OpenLayers地图居中定位问题
嘿,我一眼就瞅到问题所在啦——你把坐标顺序搞反了!
问题根源
OpenLayers(还有绝大多数GIS框架)在使用EPSG:4326(也就是常用的WGS84经纬度坐标系)时,标准的坐标顺序是 [经度, 纬度],但你代码里写的是[51.35847, 7.49918]——这是把纬度放在前面、经度放在后面了!这样转换出来的坐标完全不是你想要的位置,地图自然没法居中。
修正后的代码
把坐标顺序调换过来就搞定了,另外建议把zoom值调大一点(比如改成12),能更清晰地看到目标区域:
var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ // 修正:经度在前,纬度在后 center: ol.proj.transform([7.49918, 51.35847], 'EPSG:4326', 'EPSG:3857'), zoom: 12 }) });
额外小技巧
如果你用的是OpenLayers 6及以上版本,其实可以不用手动转换坐标系,直接在View里指定projection: 'EPSG:4326',写法更简洁:
var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: [7.49918, 51.35847], zoom: 12, projection: 'EPSG:4326' }) });
内容的提问来源于stack exchange,提问作者pregunta
相关产品推荐
相关产品推荐

