繁体   English   中英

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

我不知道功能或目标投影是否有所作为。 你试一试 ;)

好的,我找到了解决方案。 问题出在lon,lat的类型上。 我不得不改变这条线

coords.push([lon, lat]);

到线

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

现在,它运行良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM