您需要使用以下命令将经/纬度坐标转换为正确的投影(或坐标系)
var olCoordinates = ol.proj.transform([lon, lat],"WGS84", "EPSG:900913")
现在您可以使用坐标设置中心。
不同的投影有不同的代号。 WGS84 是“正常”经/纬度,EPSG:900913 是 google 地图、openstreetmap 和 bing 等网络地图中常用的投影。
我认为 OpenLayers 3 内置了对 WGS84/EPSG:4326 (lon/lat) 转换的支持,但如果您需要与其他坐标系进行转换或从其他坐标系转换,您可以包含 proj4js 库。 Openlayers 将与该库集成,并能够以相同的方式进行转换。
转换文档http://openlayers.org/en/v3.1.1/apidoc/ol.proj.html http://openlayers.org/en/v3.1.1/apidoc/ol.proj.html
Proj4 库https://github.com/proj4js/proj4js https://github.com/proj4js/proj4js
编辑:
在您提到的示例中,中心位置实际上是用经度/纬度设置的。
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
EPSG:4326 实际上与 WGS84 相同,EPSG:3857 与 EPSG:900913 相同。这很令人困惑。我自己也去过那里。
您只需将数字 37.41 和 8.82 更改为您的经/纬度坐标。如果您想在初始化后更改中心位置,则需要使用 setCenter();
map.getView().setCenter(ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857'))