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)]);
现在一切正常。
我试图缩放到地图上的所有点。我有一组 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)]);
现在一切正常。