Клуб API Карт

Артефакты отображения карты с дополнительный тайловым слоем при изменении масштаба

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

Добавил на карту дополнительный тайловый слой.

При изменении масштаба карты появляются артефакты, которые пропадают после перемещения карты.

Подскажите пожалуйста, как их убрать?

ymaps.ready(function() {
$('.map').each(function() {
var latitude = $(this).attr('data-latitude');
var longitude = $(this).attr('data-longitude');
var name = $(this).attr('data-name');

if (typeof latitude == "undefined"
|| typeof longitude == "undefined") {

return true;
}

var myMap = new ymaps.Map(this, {
center: [latitude, longitude],
zoom: 15
}, {
projection: ymaps.projection.sphericalMercator,
tileTransparent: true,
maxZoom: 16,
minZoom: 10
}),

myPlacemark = new ymaps.Placemark([latitude, longitude], {
balloonContentBody: name
}, {
preset: 'twirl#blueStretchyIcon'
});

myMap.controls
.add('zoomControl')
.add('typeSelector')
.add('mapTools');

myMap.geoObjects
.add(myPlacemark);

myMap.layers.add(new ymaps.Layer(
function(tileNumber, tileZoom) {
if (tileZoom == 15 || tileZoom == 16) {
return '/yandex/' + tileZoom + '/' + 'tile-' + tileNumber[0] + '-' + tileNumber[1] + '.png';
}
return '/yandex/256.png';
}, {
projection: ymaps.projection.sphericalMercator,
notFoundTile: '/yandex/256.png'
}));


myMap.events.add('boundschange', function (event) {
if (event.get('newZoom') != event.get('oldZoom')) {
var position = myMap.getGlobalPixelCenter();
var zoom = myMap.getZoom();
}
});

});
});

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

скажите пожалуйста браузер и версию.  

Сергей Сайгушкин
28 января 2016, 02:44

Если сместить карту немного вправо, а потом увеличить zoom, то можно заметить этот баг

 

http://jsfiddle.net/NKJeB/5/ Google Chrome 21

 

http://jsfiddle.net/NKJeB/9/ здесь будет достаточно просто приблизить

Не срабатывает tileTransparent - вы его не туда указали малек(надо в сам слой)

Для не прозрачных тайлов нормально когда сразу два тайла есть.

Сергей Сайгушкин
28 января 2016, 02:44

Спасибо, проблема решена.