OpenLayers 3 缩放到边界框

OpenLayers 3 zoom to boundary box

我试图缩放到地图上的所有点。我有一组 GPS(经度、纬度)坐标、范围,我试图缩放。但是地图在范围之外缩放。我怎样才能做到这一点?我试过这段代码:

var devices = document.querySelectorAll(".device_icon");
var coords = [];

for (var i = 0; i < devices.length; i++) {
    var lon = devices[i].getAttribute("data-lon");
    var lat = devices[i].getAttribute("data-lat");

    coords.push([lon, lat]);
}
var ex = ol.extent.boundingExtent(coords);
var areaExtent = ol.extent.applyTransform(ex, ol.proj.getTransform('EPSG:4326', 'EPSG:3857'));

map.getView().fitExtent(areaExtent, map.getSize());

谢谢。

我在我的项目中得到了类似的代码,但我正在使用这个函数来转换范围:

var areaextent = ol.proj.transformExtent(ex, 'EPSG:4326', 'EPSG:900913');

我不知道函数或目标投影是否有所不同。试一试 ;)

好的,我找到了解决方案。问题出在经度、纬度的类型上。我不得不改变这一行

coords.push([lon, lat]);

到行

coords.push([parseFloat(lon), parseFloat(lat)]);

现在一切正常。