[英]OpenLayers 3 zoom to boundary box
I tried to zoom to all points on map. 我试图放大地图上的所有点。 I have array of GPS (lon,lat) coords, makes extent and I tried to zoom.
我有一组GPS(纬度,经度)坐标,使范围变大,我尝试进行缩放。 But map is zoomed outside of extent.
但是地图在范围之外缩放。 How can I do that?
我怎样才能做到这一点? I tried this code:
我尝试了这段代码:
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());
Thanks. 谢谢。
I got a similar code in my project, but i'm using this function to transform the extent: 我的项目中有类似的代码,但是我正在使用此函数来转换范围:
var areaextent = ol.proj.transformExtent(ex, 'EPSG:4326', 'EPSG:900913');
I dont know if the function or the target-projection makes the difference. 我不知道功能或目标投影是否有所作为。 Just try ;)
你试一试 ;)
Ok, I found solution. 好的,我找到了解决方案。 The problem is in type of lon, lat.
问题出在lon,lat的类型上。 I had to change this line
我不得不改变这条线
coords.push([lon, lat]);
to line 到线
coords.push([parseFloat(lon), parseFloat(lat)]);
Now it's working perfectly. 现在,它运行良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.