Клуб API Карт

Аналог гугловского groundoverlay

Пост в архиве.
flance001
24 августа 2012, 15:24

Приветствую!

Как во второй версии api реализовать подобное groundoverlay-simple

9 комментариев

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Layer.xml

Пример:

// Добавим на карту слой OSM

map.layers.add(new ymaps.Layer(

'http://tile.openstreetmap.org/%z/%x/%y.png', {

    projection: ymaps.projection.sphericalMercator

});

map.copyrights.add('© OpenStreetMap contributors, CC-BY-SA');

 

Как-то так?

А рулится, если я правильно понимаю, pane менеджером:

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/map.pane.Manager.xml

mymap.panes.get('layers')

Хотя, если вам точь-в-точь как в гугле надо - одной картинкой, указав bounds, то через overlays, не знаю даже, если ли готовое решение.

Пока такого нет, но сделать будет несложно применив несколько хаков (

 

// Делаем прямоугольник.        var rect = new ymaps.Rectangle([[37, 70], [70, 55]], {}, {            // Определяем фабрику оверлеев, которая создает             // специальный HTML оверлей прямоугольника.            overlayFactory: {                createOverlay: function (pixelGeometry, data, options) {                    return new ymaps.overlay.html.Rectangle(pixelGeometry, data, options);                }            },            strokeWidth: 0,            // Чтобы через прямоугольник таскалась карта.             interactivityModel: "default#transparent"        });        myMap.geoObjects.add(rect);        // Берем элемент заливки прямоугольника и устанавливаем ему стили напрямую.        var fill = rect.getOverlay().getLayout().getParentElement().firstChild.firstChild;        fill.style.backgroundImage = "url(http://img2-fotki.yandex.net/get/6407/43500987.3c/0_STATIC69ea2_fcbf81ee_L)";        fill.style.backgroundRepeat = "no-repeat";        fill.style.backgroundSize = "100% 100%";

В одной из следующих версий сделаем нормальное решение, а пока так.

подключите package.overlays

Для нужного эффекта будет лучше задать не interactivityModel: "default#transparent", а pane: "graphics".

Проблема в том, что package.overlays не включен в package.full - это тоже неправильно и будет исправлено. Пока подключите явно.

Я вам уже писал:
Для нужного эффекта будет лучше задать не interactivityModel: "default#transparent", а pane: "graphics".