Marker und Infowindow in Google Maps API

maba

Angesehenes Mitglied
Liebe Community
 
Kennt sich hier jemand mit der Google Maps API aus?
Auf meiner Website habe ich eine Karte (schweizorama.ch/karte.php) mit vielen Markern. Nun überdeckt das Infowindow meinen Marker. Ich möchte gerne, dass das Fenster über dem Marker angezeigt wird.
lch habe schon versucht dan Anchorpoint zu verschieben. Leider habe ich bis jetzt keine Lösung gefunden. Wahrscheinlich kenne ich mich mit der Materie auch einfach zu wenig aus...
Ich bin für jeden Hinweis dankbar.
 
Beste Grüsse
Markus
 
Zuletzt bearbeitet von einem Moderator:
Hi Markus,

willst du sie wirklich bei mouseover öffnen? Ich fand das gerade unheimlich lästig, weil jede Mausbewegung neue Fensterchen öffnet.

Das müsse man kurz analysieren, woran das liegt, meiner Meinung nach ist das Verhalten, das du dir wünschst, eigentlich der Standard.

Ich habe gerade wenig Zeit, sonst würde ich gerne helfen. Evtl. schaffe ich es später.

Matthes

 
Ich find die Maus over besser als die Marker.
Die gehören doch zusammen...? Das eine ist ein Effekt, das andere eine Grafik. Was meinst du?

Wenn man mit der Maus über den Marker geht, kommt das Overlay. Für den Benutzer freundlicher ist es, wenn man klicken muss, weil sonst die Daten ja alle Marker nördlich überlagern.

Was er will, ist, dass das Overlay nicht an der Spitze des Markers positioniert wird, sondern oben am Rand.

 
ich hab jetzt nur mal auf die schnelle den quelltext überflogen. der layer ist absolute positioniert. wenn du an die klasse  " .gm-style-iw .gm-style-iw-c" drankommst, musst du nur top:0; durch "top: -30px" ersetzen. dann noch die klasse für das kleine weisse dreieck finden und das ebenfalls um 30px verschieben. dann steht das dingen über dem marker.

 
Das ist eine passable Lösung.

Sollte meiner Meinung nach aber nicht nötig sein, der Fehler scheint an anderer Stelle zu passieren, dass die Overlays oberhalb des Markers sind ist eigentlich Standard.

Aber mit dem Workaround kann das klappen.

 
Danke schon Mal für eure Bemühungen.

wenn du an die klasse  " .gm-style-iw .gm-style-iw-c" drankommst, musst du nur top:0; durch "top: -30px" ersetzen.
Und wie komme ich an die Klasse?

Es kann sein, dass das ganze Konstrukt etwas "komisch" ist. Soweit ich mich erinnere, kam das, weil ich immer nur ein Fenster geöffnet haben will. Somit musste ich das Infowindow mit dem Marker verbinden. Vielleicht gibt es ja allgemein einfachere Lösungen...

 
Ich glaube, es könnte daran liegen:

function meinFenster (mymarker) {
infowindow.close();
infowindow.setPosition(mymarker.getPosition());
infowindow.setContent(mymarker.meinContent);
infowindow.open(map);
}


Mit set.Position() und get.Position() wird ja die Koordinate vom Punkt definiert.

Weiss jemand, wie man dies umgehen kann? Ich glaube der Ort vom Fenster muss wegen der Funktion zwingend definiert werden.

Oder wie die Angabe ausgelesen und um einen Lat-Wert korrigiert werden kann. So dass dann der definierte Punkt über dem Marker liegt. Wobei dies wahrscheinlich mit dem Zoomen nicht funktioniert...

 
Oder wie die Angabe ausgelesen und um einen Lat-Wert korrigiert werden kann. So dass dann der definierte Punkt über dem Marker liegt. Wobei dies wahrscheinlich mit dem Zoomen nicht funktioniert...
Richtig.

Weiss jemand, wie man dies umgehen kann? Ich glaube der Ort vom Fenster muss wegen der Funktion zwingend definiert werden.
Du bist auf der richtigen Spur. Lass setPosition weg.

Ich habe gerade echt keine Zeit, das nachzusehen, weiß aber, dass ich infowindow.open(map,marker) aufrufe, also für dich mit infowindow.open(map,mymarker). Welchen Unterschied das macht, müsste man in der Dokumentation nachsehen. Probier einfach mal, setPosition wegzulassen und berichte. ?

 
Matthes, besten Dank für deine Unterstützung.

Es funktioniert ohne setPosition() und mit dem mymarker-Zusatz.

Code:
	function meinFenster (mymarker) {
		infowindow.close();
		infowindow.setContent(mymarker.meinContent);
		infowindow.open(map,mymarker);
	}
 
Hervorragend, das freut mich. :)

Ich würde an deiner Stelle trotzdem noch einmal in mich gehen und schauen, ob ich das onmouseover-Event wirklich nutzen möchte. Für jemanden, der nach oben navigieren möchte, ist das Overlay wirklich ein Hindernis, weil es vor den anderen Markern liegt. Nur so als Anregung. Die Klick-Lösung ist für die Informationsdichte vermutlich auch nicht optimal, weil man wenig Chancen hat, sich wirklich zu orientieren... Schwierig. Aber wenn das Problem vorerst gelöst ist, ist es vorerst auch gut.

 
Zurück
Oben