Клуб API Карт

map.getBounds

shasoft
27 июля 2009, 22:22

При просмотре карты на зуме "Мир" если размер карты сделать побольше, то метод map.getBounds возвращает значения

[(-135.2609253272574,-62.00116483339106),(-135.2609255272574,85.92455773963135)

что не очень хорошо, так как значение востока и запада равны.


7 комментариев
Подписаться на комментарии к посту
Пробовали задавать параметр unbounded?
Теперь попробовал. Если указывать unbounded, то возвращает нормально. P.S.Хотя я то думал, что и при false должно нормально возвращать.
На карте отображен весь мир. АПИ выбирает центральную точку, откладывает от нее влево и вправо по 180 градусов и возвращает результат. Так как координаты замкнуты по долготе, логично что они сходятся в одной точке.

Если вы спросите полученной области центр то вам вернется реальный центр, если спросите размеры (getSpan) то ширина области будет 360 градусов.

Все методы должны работать корректно.



Это меня гугль API испортил. Он в таком случае возвращает -180,180

В общем проблему решил просто. Беру область в unbounded, а потом просто смещаю интервал в диапазон.
если возвращать -180, 180 потеряется информация о центре карты его долгота всегда будет 0, что не верно
В справке написано "Возвращает текущие границы видимой области карты (viewport)". Т.е. возвращает ГРАНИЦЫ. Для центра можно вызвать метод getCenter.
Я получаю этим методом именно границы, чтобы в запросе на сервер получить все объекты, которые попадают в область просмотра карты. По моему мнению было более логично выводить именно область карты. Т.е. если unbounded, то выводить как есть, а если unbounded=false, то выдавать именно область в границах -180,90,180,-90. А выдавать область у которой западная и восточная граница совпадают - это уж точно неправильно.
Хотя, это мое мнение. Разработчики Я.api думают по другому. Я потому и написал, чтобы выяснить: это просто баг в коде или "политика партии" такая.
Костыль я уже написал для выправления этого, но если это баг, то буду следить  за обновлениями и исправлениями, чтобы когда исправят, то убрать костыль. А если политика - то тогда просто уже ничего не сделаешь, просто буде считать свой исправляющий код не костылем, а "доработкой кода яндекса". :)
в данный момент мы не считаем это багом :)