2014-09-18 4 views
1

Я использую API-интерфейс Google API JavaScript, и мне было любопытно, был ли способ установить приоритет того, какое информационное окно многоугольника отображается при щелчке по области. У меня есть два полигона, которые перекрываются, и мне нужно контролировать, какой информационный пузырь появляется, когда вы нажимаете на перекрываемую область. Спасибо!Настройка приоритета приоритета на полигоне карт google

ответ

1

Щелчок будет активирован на самом верхнем многоугольнике.

Порядок многоугольников обычно зависит от того, в каком порядке они были добавлены на карту (когда задано свойство map) или путем настройки настраиваемого свойства zIndex.

Поэтому, когда вы хотите определить приоритет, вы должны определить zIndex для полигонов.

Если вы хотите, чтобы иметь возможность нажать на каждый многоугольнике (и каждую часть каждого полигона) есть простой подход:

Соблюдайте MouseOver многоугольников и установить zIndex в наведен полигона до значения выше, чем zIndex других полигонов. Это приведет к тому, что многоугольник будет впереди, и теперь вы можете также щелкнуть по ранее покрытой области.

Вы можете осуществить это путем расширения полигона-прототип:

(function(){ 
    var a=z=0; 
    google.maps.Polygon_=function(opts){ 


    this.setValues(opts) 
    google.maps.event.addListener(this,'mouseover',function(){ 
     this.set('zIndex',++z); 
    });  
    google.maps.event.addListener(this,'rightclick',function(){ 
     this.set('zIndex',--a); 
    }); 

    }; 
    google.maps.Polygon_.prototype = google.maps.Polygon.prototype; 
    google.maps.Polygon = google.maps.Polygon_;} 
)(); 

Демо: http://jsfiddle.net/doktormolle/wznd5nsy/

(Используйте RightClick отправить полигон обратно, например, когда она полностью покрывает другой многоугольник).

Смежные вопросы