Как добавить прослушиватель событий в OverlayView?

Я пытаюсь создать OverlayView на карте Google в качестве настраиваемого маркера.

Мне удалось успешно создать OverlayView, как показано ниже.

http://plnkr.co/edit/4XDANE?p=preview

Однако, когда я пытаюсь добавить к нему слушателей событий, я застрял.

Я попробовал следующее, но безуспешно.

    // ------------- Trying To Add DOM Event Listener ---
    google.maps.event.addDomListener(this.div, 'click', function(){
      alert(1); // NOT working
    })

    // ------------- Or, this ---
    this.div.addEventListener('click',function() {
      alert(1); // NOT working
    });

Кто-нибудь сделал это успешно?

----- update ---- Согласно предложению @ dr-molle, следующее принимает щелчок мышью.

    //panes.overlayLayer.appendChild(div);   NOT THIS
    panes.overlayMouseTarget.appendChild(div);  // But, This

    // ------------- Trying To Add DOM Event Listener ---
    google.maps.event.addDomListener(this.div, 'click', function(){
      alert(1); // working
    })

person allenhwkim    schedule 25.08.2015    source источник
comment
Не уверен, но пытаетесь ли вы достичь чего-то вроде этого - humaan.com/custom- html-markers-google-maps?   -  person Anand G    schedule 25.08.2015


Ответы (1)


Вы должны использовать другой pane для слоя.

В настоящее время вы используете overlayLayer, но только overlayMouseTarget и floatPane могут получать DOM-события.

Я бы посоветовал использовать overlayMouseTarget, в этом случае ваши оверлеи будут действовать как маркеры (информационные окна будут открываться перед оверлеями)

person Dr.Molle    schedule 25.08.2015
comment
InfoWindows would be opened in front of the overlays. Но я этого не понимаю. - person allenhwkim; 25.08.2015
comment
предположим, что есть информационные окна, которые будут открываться на карте (настраиваемые информационные окна, реализованные вами, или встроенные информационные окна, например, когда пользователь нажимает на POI) ... они всегда будут закрывать ваши настраиваемые наложения. - person Dr.Molle; 25.08.2015