OpenLayers 3缩放到边界框

时间:2015-06-23 07:10:04

标签: javascript zoom openlayers-3

我试图缩放到地图上的所有点。我有一系列的GPS(lon,lat)坐标,使得范围和我试图放大。但是地图在范围之外被缩放。我怎样才能做到这一点?我试过这段代码:

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());

感谢。

2 个答案:

答案 0 :(得分:0)

我的项目中有类似的代码,但我正在使用此函数来转换范围:

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

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

答案 1 :(得分:0)

好的,我找到了解决方案。问题在于lon,lat的类型。我不得不改变这一行

coords.push([lon, lat]);

到行

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

现在它工作得很好。