Мне было интересно, есть ли способ получить ограничительную рамку не полного слоя, а только часть слоя, которая видна в текущем значении масштабирования карты ?Ограничивающая поле только для видимой части слоя
Итак, мне нужно получить координаты экрана ограничивающей рамки слоя, нарисованного на экране. Я не мог найти способ добиться этого.
EDIT:
К сожалению, это не решает мою проблему. Это именно тот момент, который я получил до последнего, и в некоторых случаях он не работает. Поскольку stackoverflow не позволяет загружать изображения из-за моей репутации, я попытаюсь описать: Представьте, что у меня есть путь, который пересекает экран, почти параллельный оси y, однако вне экрана он по крайней мере длин оси x. В этом случае предлагаемое решение вернет минимальные и максимальные координаты экрана для оси x, где это должен быть короткий интервал, который пересекает экран. В некотором смысле мне нужен ограничивающий ящик видимой части слоя.
EDIT 2: Благодарим всех вас за ответы. Я попытался использовать функцию getFeaturesInExtent, но я получаю сообщение об ошибке: «Uncaught TypeError: undefined не является функцией». Я использую последнюю версию OpenLayers версии 3.4.0. Я предполагаю, что получаю эту ошибку, потому что эта функция не реализована в этой версии. Путь я использую следующее:
var mapExtent = map.getView().calculateExtent(map.getSize());
var features = result.getSource().getFeaturesInExtent(mapExtent);
Какие решения вы предлагаете для меня? (Я пытался использовать основную версию, загружающую ZIP из: https://github.com/openlayers/ol3, но карта в этом случае не работала.) Еще раз спасибо!
Я не уверен, что правильно понял, но ['ol.source.Vector # getFeaturesInExtent'] (http://openlayers.org/en/master/apidoc/ol.source.Vector.html#getFeaturesInExtent) с протяженностью карты дает вам все видимые функции. Тогда вы могли бы рассчитать реальную степень с этими функциями. – tsauerwein