Клуб API Карт

Добавление ссылки

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

Необходимо сделать внешнюю ссылку при нажатии на элемент карты polygon. 

Заранее спасибо.

11 комментариев
Максим Горчаков
28 января 2016, 04:44

Когда добавляете полигон повесте на него обработчик клика и window.location.href куда хотите.

аля:

polygon.events.add('click',function(){

  window.location.href = 'blablabla.com';

})

Вот кусок кода из рабочего проекта:


var placemark = new ymaps.Placemark([data['pharmacy'][i]['x'], data['pharmacy'][i]['y']], {
    hasBalloon: false,
    link: data['pharmacy'][i]['url']
}, {
    iconImageHref: 'images/pharm_map_pic.png',
    iconImageSize: [19, 19],
    iconImageOffset: [-8, -19]
});
placemark.events.add('click', function(e) {
    document.location = this.properties.get('link');
}, placemark);

address.mapObjects.add(placemark);

Можете на примере моего кода сказать, что куда вставить)

            var polygon = new YMaps.Polygon([

                new YMaps.GeoPoint(38.948584,45.142507),

                new YMaps.GeoPoint(38.994632,45.139409),

                new YMaps.GeoPoint(38.994374,45.135764),

                new YMaps.GeoPoint(38.997979,45.135643),

                new YMaps.GeoPoint(38.996735,45.127745),

                new YMaps.GeoPoint(38.98622,45.122702),

                new YMaps.GeoPoint(38.94412,45.127684),

            ], {

                style: "polygon#Example",

                hasHint: 1,

                hasBalloon: 1

            }) ;

            polygon.name = "name1";

            map.addOverlay(polygon);

Перед map.addOverlay(polygon); добавьте:

polygon.events.add('click', function(e) {
    document.location = 'http://ya.ru/';
});

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

Максим Горчаков
28 января 2016, 04:44

А если убрать обработчик клика, то многоугольники не пропадаю при клике по ним?

Теперь нет, но зато происходит переадресация на указанный адрес, сразу.

map.addOverlay(polygon);

YMaps.Events.observe(polygon, polygon.Events.Click, function () {

window.location = '...';

});

Спасибо, заработало)

переходите на АПИ 2.0 =)

она на первом АПИ пишет

ваш пример работать не будет