Делаю скрипт, который аяксом подгружает объекты в пределах видимости карты.
На сервер передается прямоугольник, по которому он ищет то все точки попадающие в него.
Для работы аякса нужен результат Map.getBounds().
Обнаружил, что при определенном зуме (когда видны континенты) Map.getBounds() выдает совершенно нереальные координаты.
Для демонстрации этого, вот скрипт:
map = new ymaps.Map('xc-map', {
controls: ['zoomControl'],
center: [55.73, 37.75],
zoom: 16
}, {suppressMapOpenBlock: true});
map.events.add('boundschange', function(e) {
var b = e.get('oldBounds');
ymaps.geoQuery(map.geoObjects).removeFromMap(map);
var rect = new ymaps.Rectangle(e.get('oldBounds'), {
hintContent: 'OLD'
}, {
fillColor: '#7df9ff33',
fillOpacity: 0.5,
strokeColor: '#FF0000',
strokeOpacity: 0.5,
strokeWidth: 2,
borderRadius: 6
});
map.geoObjects.add(rect);
});
Чтобы увидеть глюк, нужно жать минус пока не появятся континенты.
При этом рисуется красный прямоугольник, показывающий предыдущие границы карты.
Когда появляются континенты, прямоугольник начинает появляться совершенно не там, где должен.
Вот ссылка для тестов http://rent.ru.com/test.html