Клуб API Карт

Не загружает панорамы в балуне

DomEdI211
15 мая, 21:14

Добрый вечер.

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

Решил задачу согласно представленной инструкции. Но столкнулся с проблемой - на некоторых ПК не загружает панорамы. Точнее - вроде пытается открыть но не подгружает сами картинки, отображает просто размытость. 

Посмотрел запросы - на тех ПК, где панорама работает без проблем - происходит запрос картинок (256x256), на проблемных - нет. Подскажите в какую сторону копать. В консолях браузеров проблемных ПК не выпадает никаких JS ошибок.

14 комментариев
Подписаться на комментарии к посту
А проверка для них что возвращает?
dimik,
true, и при просмотре панорам непосредственно на сайте Яндекс - работает
DomEdI211,
требуется более подробная информация – тип и версия браузера и ОС на проблемном компьютере, минимальный пример кода, воспроизводящий проблему
dimik,
FireFox 52.0.2, Windows 7 (редакцию, к сожалению, не помню) x64.
function setBalloonContentLayout (placemark, panorama, flag) {
if(flag){
var BalloonContentLayout = ymaps.templateLayoutFactory.createClass('<div id="panorama" style="width:500px;height:245px"></div><div class="text"><span>{{properties.balloonContentHeader|raw}}</span>{{properties.balloonContentBody|raw}}</div><div class="buttons" attr-name="{{properties.balloonContentHeader|raw}}" attr-coords="[{{properties.coordinates[0]}}, {{properties.coordinates[1]}}]">{{properties.balloonContentFooter|raw}}</div>', {
build: function () {
BalloonContentLayout.superclass.build.call(this);
this._openPanorama();
},
clear: function () {
this._destroyPanoramaPlayer();
BalloonContentLayout.superclass.clear.call(this);
},
_openPanorama: function () {
if (!this._panoramaPlayer) {
var el = this.getParentElement().querySelector('#panorama');
this._panoramaPlayer = new ymaps.panorama.Player(el, panorama, {
controls: ['panoramaName']
});
}
},
_destroyPanoramaPlayer: function () {
if (this._panoramaPlayer) {
this._panoramaPlayer.destroy();
this._panoramaPlayer = null;
}
}
});
} else {
var BalloonContentLayout = ymaps.templateLayoutFactory.createClass('<div id="panorama" style="width:500px;height:245px"><span id=nopano>' + panorama + '</span></div><div class="text"><span>{{properties.balloonContentHeader|raw}}<span>{{properties.balloonContentBody|raw}}</div><div class="buttons" attr-name="{{properties.balloonContentHeader|raw}}" attr-coords="[{{properties.coordinates[0]}}, {{properties.coordinates[1]}}]">{{properties.balloonContentFooter|raw}}</div>');
}
placemark._collection.options.set('balloonContentLayout', BalloonContentLayout);
$('#GoTo').click(function () {
$(this).parents(".buttons").append("<div id='loading'>Загрузка...</div>");
var mName = $(this).parents(".buttons").attr("attr-name"),
mCenter = JSON.parse($(this).parents(".buttons").attr("attr-coords"));
var doc = Qv.GetCurrentDocument();
myself.Data.SelectTextsInColumn(0, false, mName);
doc.SetVariable('selectionObject', '');
});
$('#Zoom').click(function () {
var mCenter = JSON.parse($(this).parents(".buttons").attr("attr-coords"));
map.setCenter(mCenter);
map.setZoom(15);
});
}
function requestForPanorama (e) {
var placemark = e.get('target'),
coords = placemark.getPosition();
setTimeout(function(){
ymaps.panorama.locate(coords, {
layer: 'yandex#panorama'
}).then(
function (panoramas) {
if (panoramas.length) {
setBalloonContentLayout(placemark, panoramas[0], true);
} else {
setBalloonContentLayout(placemark, "Извините, для данной местности нет панорам.", false);
}
},
function (err) {
setBalloonContentLayout(placemark, "Извините, произошла ошибка. Попробуйте еще раз.", false);
}
);
}, 5000);
}

Забыл еще сказать - на всех ПК первый запрос проходит, там, как я понял - данные для номеров домов (JSON)
серёга
15 мая, 21:50
Добрый вечер, подскажите пожалуйста, загружается ли панорама после драга или зума?
серёга,
К сожалению, нет
DomEdI211,
А пример из песочницы работает?
dimik,
Да, работает

DomEdI211,
тогда имеет смысл взять код из примера
dimik,
К сожалению, в виду определенных моментов, не получается использовать код примера в не измененном виде. 
dimik,
Сегодня проверил еще раз на нескольких проблемных ПК, код из примера работает только на одном. Причем если включить контролы (+/-) и поизменять масштаб - панорама начнет грузиться
kirill.s.dmitrenko
16 мая, 16:32
DomEdI211,
Дайте, пожалуйста, ссылку на какую-нибудь страницу, на которой можно увидеть проблему.
kirill.s.dmitrenko,
Ссылку на разрабатываемый проект, к сожалению, дать не могу. Но на всех ПК, за исключением одного, данная проблема так же воспроизводится и на странице примера Yandex