Клуб API Карт

Перестали открываться балуны на карте (релиз 2.0.18)

Пост в архиве.

Здравствуйте.

Есть карта, которая работает на основе API 2.0 В карте зафиксирован релиз 2.0.18, но даже это не помогает... т.к. с выпуском новых версий карты некоторые элементы отказывают. Вы не подскажите почему на этот раз перестало работать открытие балунов?

На карте ничего не менялось в течении месяцев 5. Еще дней 5 назад балуны открывались отлично.

Пишет что ошибка в следующей конструкции (пишет "Uncaught TypeError: Cannot call method 'contains' of undefined"):

var mapSize = map.container.getSize(),
mapBounds = [
[mapData.globalPixelCenter[0] - mapSize[0] / 2, mapData.globalPixelCenter[1] - mapSize[1] / 2],
[mapData.globalPixelCenter[0] + mapSize[0] / 2, mapData.globalPixelCenter[1] + mapSize[1] / 2]
],
balloonPosition = balloon.getPosition(),
// Используется при изменении зума.
zoomFactor = Math.pow(2, mapData.zoom - map.getZoom()),
// Определяем, попадает ли точка привязки балуна в видимую область карты.
pointInBounds = ymaps.util.math.bounds.contains(mapBounds, [
balloonPosition[0] * zoomFactor,
balloonPosition[1] * zoomFactor
]),
isInOutersPane = balloon.options.get('pane') == 'movableOuters';

Что-то никак не пойму, почему если версия API зафиксирована на 2.0.18 , она (зависксированная версия) постоянно меняется что перестают работать некоторые элементы карты?

Проблемная карта тут: http://www.svadbagolik.ru/#map

 

P.S. Попробовал на локальной машине поставить релиз 2.0.23 - вроде бы открытие балунов заработало, но работают ли все остальные элементы карты - большой вопрос!

3 комментария

util.math.bounds - непубличный метод, он не описан в документации. Все методы, которые мы не описываем в доке вы можете использовать на свой страх и риск.

Конкретно 18й версии уже физически не существует, нам пришлось ее отключить из-за того, что она очень сильно устарела и теперь вместо нее подключается автоматически более свежая версия.

Старайтесь пользоваться публичными методами, тогда проблемы сведутся к минимуму.

Может вы подскажите, чем можно заменить указанный метод? util.math.bounds ... хотя бы в какую сторону смотреть?

Я пока не очень поняла логику - у вас там берется прямоугольная область карты на текущем масштабе. Потом берутся координаты балуна. Координаты балуна приводятся к какому-то кастомному масштабу, а граница карты не приводится. Почему так сложно?