ymaps API 3.0. Определение области видимости карты

Рейтинг: 0Ответов: 0Опубликовано: 18.04.2023

Предположим, что map.bounds = [[-90, 45], [90, -45]] и есть набор точек const points: {coords: LngLat, data: any}[] = [/*Данные*/]

Необходимо отфильтровать массив points по области видимости карты. На малых масштабах прекрасно работает правило, что minLng <= pointLng <= maxLng и minLat <= pointLat <= maxLat. Но учитывая, что по долготе карта зациклена, значение [[-90, 45], [90, -45]] подпадает как и под то, что в области видимости находится половина земного шара, так и под полтора. Пояснение на картинке ниже.

На картинке сверху выведены границы карты (левый-верхний угол и нижний-правый) и на карте красная линия означает левую границу, а зеленая правую. И получается, что любая пара красна+зеленая линия будет иметь границы равные выведенным. И получается так, что, чтобы правильно отфильтровать точки, нужно понимать являются ли данные границы небольшой частью карты по центру или же видно все карту.

Пример неоднозначности границ

Можно ли как-то определить, видно ли всю карту или только ее часть?

Ответы

Ответов пока нет.