Drupal in der Praxis:Google Map Infofenster bei Mouseover öffnen

Gespeichert von admin am 19.12.2013 - 10:02

Auf der Webseite Berggenuss werden mit Hilfe der Module Location und GMap Karten aller Alpenländer eingebunden und die eingetragenen Betriebe angezeigt.

Nun kam die Idee auf, daß sich das Info-Fenster mit den Betriebs-Details nicht erst bei Klick auf den jeweilige Marker, sondern bereits bei einem MouseOver-Event öffnen soll.
Eigentlich hatte ich die Doku entnommen, daß dies durch einen Eintrag im Backend für das Modul Gmap eingestellt werden könnte.

Ganz so einfach geht es allerdings nicht, wie auch die verschiedenen Posts im Netz zeigen.

Wenn man mit dem JavaScript-Debugger von Firebug das Verhalten beobachtet, dann findet man recht schnell die Stelle, wo das Verhalten gemanaged wird.
Es ist die Datei sites/all/modules/gmap/js/marker.js.

Hier ist das Click-Event definiert, aber der Mouseover-Event würde erst greifen, wenn der Haken im Backend bei extramarkerevents gesetzt wäre.
Letzteres läßt sich nicht einstellen. Das Verhalten ist bekannt.

Gmap Infofenster bei Mouseover öffnen

Ein kleiner Test zeigt, daß einfaches Auskommentieren der If-Abfrage 

 if (obj.vars.behavior.extramarkerevents)

(fast) ausreichen würde, um das gewünschte Verhalten zu erzwingen.

Aber natürlich wollen wir nicht die Original-JS-Datei des Moduls verändern.

Also binden wir über die info-Datei des Themes eine neue js-Datei ein.

 scripts[] = 'js/marker.js'
und legen eine Kopie der Original marker.js im entsprechenden Verzeichnis des Themes ab.
 
Hier können wir die Datei nun anpassen.
 

Marker.js Gmap Modul Mouseover

 

(Hier kann der Code als Textdatei geladen werden)

Ein erster Test hat ergeben, daß unbedingt unterbunden werden muß, daß ein Mouseover das geöffnete Fenster schließe und ein neues Fenster öffnet, auf dem sich die Maus evt unabsichtlich befindet.

Dies wird mit dem Parameter openwin bewerkstelligt.

Ein paar Änderungen bezüglich der Größe des Infofensters wurden auch noch eingebaut, damit es keinen Scrollbalken gibt und damit die Breite immer gleich ist.

Auf den Übersichtskarten von Berggenuss wird das Mouseover übrigens nicht eingesetzt.
Es ist nur benutzerfreundlich, wenn sich auf der Karte nur wenige Marker befinden und genug Platz zwischen den Markern ist.
Andernfalls werden beim Ansteuern eines gewünschten Markers unerwünschte Fenster geöffnet, weil man sie versehentlich mit der Maus überfährt.

Das Mouseover ist also ein netter Gag, aber keinesfalls überall sinnvoll.