Клуб API Карт

AIR и многоугольники

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

Очень надеюсь, что у кого-нибудь есть идеи по следующему вопросу.

Есть AIR приложение, которое просматривает несколько сайтов, в том числе и сайт с картой. Просмотр через <iframe>. Проблема в том, что во время просмотра через AIR, при попытке добавить многоугольник или кривую на карту, в консоль выводится ошибка следующего содержания

TypeError: Result of expression 'this._$element[0].className' [undefined] is not an object.
at http://api-maps.yandex.ru/1.1.16/_YMaps.js : 11

 

и многоугольник не появляется. При этом метки прорисовываются без проблем. Другие оверлеи не пробовал. К примеру, здесь (из примеров Яндекс.карт) через браузер все отлично прорисовывается, через AIR - не прорисовывается, и вылезает эта ошибка.

С нетерпением жду ваших соображений по этому поводу. Вдруг кто-то с таким сталкивался.

 

5 комментариев
Вы добавляете также как в примере?
Ошибка возникает в момент вызова


map.addOverlay(polygon);


?
Михаил Ярополов
28 января 2016, 06:49
Да, добавляю, как в примере. Более того, я эту самую страницу и просматриваю, прописав в src ай-фрейма ссылку на нее.

Чтобы хоть в чем-то разобраться, я скопировал этот пример на localhost и добавил try-catch конструкции:




polygon.onAddToMapFunction = polygon.onAddToMap;
polygon.onMapUpdateFunction = polygon.onMapUpdate;
polygon.onAddToMap = function (map, parentContainer)
{
try
{
this.onAddToMapFunction(map, parentContainer);
}
catch(e)
{
alert("polygon.onAddToMap error:\n"+e);
}
};
polygon.onMapUpdate = function ()
{
try
{
this.onMapUpdateFunction();
}
catch(e)
{
alert("polygon.onMapUpdate error:\n"+e);
}
};
try
{
           map.addOverlay(polygon);
}
catch(e)
{
alert("map.addOverlay(polygon) error:\n"+e);
map.updateFunction = map.update;
map.update = function ()
{
                    try 
                    {
                        this.updateFunction();
                    } 
                    catch (e) 
                    {
                     alert("map.update error:\n"+e);
                    }


}
}







При самой загрузке карты в iframe в AIR, вылезает алерт с "polygon.onAddToMap error" все с тем же описанием ошибки. В консоли ошибок нет. Стоит увеличить карту, а потом поперемещать, консоль сразу заполняется большим количеством ссылок на 11-ю строку в _YMaps.js, мол там вся та же ошибка TypeError. Больше никаких алертов не появляется.


Михаил Ярополов
28 января 2016, 06:49
Извините за ужасное форматирование кода. Что-то у меня здесь по-нормальному не выходит.
Выяснилось, что AdobeAIR не поддерживает svg.
Со следующей версии для AIR будет использоваться server side графика.
Михаил Ярополов
28 января 2016, 06:49
Спасибо за отклик!
Из-за этой ситуации пришлось найти что-то другое, нежели Adobe AIR. Выбор пал на Titanium Developer. Пока что всем доволен.