OpenLayers 3 приближает границу рамки

Я попытался приблизить все точки на карте. У меня есть массив координат 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());

Спасибо.


person Musketyr    schedule 23.06.2015    source источник


Ответы (2)


У меня в проекте есть похожий код, но я использую эту функцию для преобразования экстента:

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

Я не знаю, имеет ли значение функция или целевая проекция. Просто попробуй ;)

person Martin Bauer    schedule 23.06.2015
comment
Я пробовал это, но результат тот же :(. Мои координаты в ex = [14.82166667,49.4809083,15.86349,50.28216667] - person Musketyr; 23.06.2015

Хорошо, я нашел решение. Проблема в типе лон, лат. Мне пришлось изменить эту строку

coords.push([lon, lat]);

ровняться

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

Теперь работает отлично.

person Musketyr    schedule 23.06.2015