我试图缩放到地图上的所有点。我有一系列的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());
感谢。
答案 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)]);
现在它工作得很好。