Блог API Яндекс.Карт

2.0-stable переключен на 2.0.15

Как и обещали, переключили ссылку api-maps.yandex.ru/2.0-stable на версию API 2.0.15. Пожалуйста, прочтите статью о системе версионирования, чтобы использовать наиболее подходящую для ваших задач ссылку для подключения API.

Обязательно пишите, если заметите какие-то ошибки в работе карт на своем сайте.

Команда разработчиков API Яндекс.Карт.

13 комментариев
small_butterfly_long_long_as_long_as_i_can_do_it_here
28 января 2016, 06:20

в 2.0.15 был страшный (для нашего портала) баг, в глобальном пространстве имен переопределялся объект Button, мы оставили репорт (Ticket#12090419403618916).

Тогда чтобы избежать бага, мы перешли на версию /2.0-stable , а теперь stable переключена на злополучную версию 2.0.15 и баг вернулся вновь.

Зачем тогда нужна версия stable, если ее использование все равно не помогает от таких ошибок?

Sergey Konstantinov
28 января 2016, 06:20

Добрый день.

К сожалению, мы никак не ожидали, что эта проблема окажется для вас настолько критичны. Примите наши извинения.

Вы можете использовать версии 2.0.14 или 2.0.17, где этой проблемы нет.

small_butterfly_long_long_as_long_as_i_can_do_it_here
28 января 2016, 06:20

да, теперь придется зафиксировать нужную версию, благо такая возможность есть.

Спасибо за ответ!

у меня перестал работать код, который стабильно работал на предыдущей stable



ymaps.geoXml.load(url).then(function (res) {
    map.geoObjects.add(res.geoObjects);
    if (res.mapState) {
        res.mapState.applyToMap(map);
    }
    map.geoObjects.options.set("interactivityModel", "default#transparent");
    map.geoObjects.options.set("openBalloonOnClick", false);

    map.geoObjects.each(function(group){
        group.each(function(item){
            //console.log(item.properties.get("name"));
            item.properties.set("hintContent", item.properties.get("name"))
        });
    });
});


ошибка вот в этой строке.

TypeError: group.each is not a function

group.each(function(item){ ... 


пришлось откатиться на версию 2.0.14

 

 

Sergey Konstantinov
28 января 2016, 06:20

добавьте if (typeof group.each == 'function')

Вы выполняете потенциально опасную операцию, перебирая все геообъекты карты; кроме добавленных вами там могут оказаться метки линейки и метки контрола поиска, например.

Так делать не надо, выставляйте опции и перебирайте напрямую res.geoObjects - эту коллекцию вы полностью контролируете, в отличие от map.geoObjects.

спасибо, попробую...

кстати попытался найти причину, почему в версии 2.0.15 group.each отказывается работать...

такое впечатление, что у меня операция each вызывается раньше, чем инициализируется объект group, правда не понятно, как такое может быть?
Sergey Konstantinov
28 января 2016, 06:20

Нет, вы, скорее всего, попадаете на линейку.

нет, интересно что в IE и Chrome сразу
typeof group.each == undefined


а в FF как-то через раз... то все нормально - перебираются слои, то тоже undefined
такое впечатление что все же что-то с загрузкой и инициализацией объекта...
twirl спасибо большое за подсказку!!! ))))), переписал код вот так...


ymaps.geoXml.load(url).then(function (res) {
    map.geoObjects.add(res.geoObjects);
    if (res.mapState) {
        res.mapState.applyToMap(map);
    }
    res.geoObjects.each(function(item) {
        item.properties.set("hintContent", item.properties.get("name"));
    });
    map.geoObjects.options.set("interactivityModel", "default#transparent");
    map.geoObjects.options.set("openBalloonOnClick", false);
});

и теперь все работает на всех версиях API ))
Константин С.
28 января 2016, 06:20

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

Заметил, что на всех моих проектах перестали открываться карты вызываемые с использованием API 2-й версии. Пробовал версионирование от 2.0.7 до 2.0.18 (к удивлению заметил, что есть такая, по крайней мере NOT FOUND браузер выдает только с 2.0.19) Версионирование не помогло - ни на одной версии карты так и не открываются (через API 1.1 работают).

 

Хочу привести код (одного из проектов, на других примерно аналогично, разница только в ключе).

         

         
         

Там координаты на php вставляются. С ними все ок, т.к. во-первых ничего не менял, во вторых открываются на ура по ссылке

,&z=15&t=h">посмотреть тоже самое на гугл мэпсhttp://maps.google.com/maps?ll=,&z=15&t=h">посмотреть тоже самое на гугл мэпс>

 

Пример проекта (внизу есть пустой блок на светло-желтом фоне - там пусто):

http://rybinsky.ru/dload.php?fid=238

Помогите, пожалуйста

Константин С.
28 января 2016, 06:20

Еще вдогонку хочу спросить какая версия открывала 2-3 дня назад по ссылке http://api-maps.yandex.ru/2.0 ?

Сейчас я так понимаю 2.0.18 (скачал код, внизу идет инициализация с указанием версии 2.0.18)

Константин С.
28 января 2016, 06:20

Практически методом тыка выявнил, что при подключении API на яваскрипте без указания параметра ключа key (который, оказывается не нужен во второй версии API - не знал, каюсь) карты начинают отображаться.

Непонятно только почему вдруг ключ стал мешать и еще более непонятно, почему он вдруг стал мешать во всех версиях? Как я уже сказал я пробовал все подряд от 2.0.7 до 2.0.18

Sergey Konstantinov
28 января 2016, 06:20

Спасибо за ваше сообщение, пытаемся разобраться, в чем проблема.