27. Apr. 2012, 08:45 von Sean Mickey

Wie räume ich ein InfoWindow auf, wenn der zugehörige Marker ausgeblendet ist?

Ich weiß, dass viele von uns Code schreiben, um eine zu öffnenInfoWindow wenn ein Marker angeklickt wird. Aber dieInfoWindow bleibt an Ort und Stelle, bis oben rechtsX wird angeklickt, was bedeutet, dass die zugehörige EinstellungMarkerSichtbarkeit zufalse wird schaffen, was im Wesentlichen eine Waise istInfoWindow. Und es könnte mehrere gebenInfoWindow Instanzen, die gleichzeitig auf der Karte angezeigt werden. Ich denke, es ist einfach genug für den Benutzer, um nur auf die Schaltfläche zu klickenInfoWindow geschlossen, aber es fühlt sich an wie das VersteckenMarker sollte das zugehörige versteckenInfoWindow.

Ich habe angefangen, Code wie den folgenden zu schreiben, um mit diesem Szenario fertig zu werden:

<code>google.maps.event.addListener( marker, "click", function() {
    var bubble = new google.maps.InfoWindow({
        content: buildBubbleContent( param1, param2 )
    });
    bubble.open( map, marker );
    //pretty standard stuff to here, but the next line is new (for me):
    google.maps.event.addListenerOnce( marker, "visible_changed", function() {
        bubble.close();
    });
});
</code>

Ist es das, was alle anderen tun? Es fühlt sich an wie ein Designmuster, das a genannt werden sollteListenBack. Ich habe das Problem in den Google Maps-Dokumenten noch nie gesehen. Ich kann nicht anders, als zu denken, dass es einen einfacheren Mechanismus geben muss, der in das System eingebaut istInfoWindow um dies automatisch zu erledigen. Gibt es eine Standardmethode, die ich gerade verpasst habe?

questionAnswers (0)

02. Mai 2012, 13:58 von Sean Mickey

weil ich die Dokumente weiter durchsucht und viele Codebeispiele angesehen habe, aber keine anderen Lösungen gefunden habe. Das InfoWindow bietet sicherlich keine Möglichkeit, es automatisch von der Karte zu entfernen, wenn der zugehörige Marker deaktiviert wird. Wenn jemand später eine bessere Option findet, werde ich seine Lösung gerne als die bessere Antwort markieren.

27. Apr. 2012, 10:47 von Eric Bridger

rung immer als global. Mein Klickereignis beginnt mit:

<code>if(infoWindow != null){
   infoWindow.close();
}
infoWindow.setPosition(mouseEvent.latLng);
infoWindow.setContent("....");
// etc
</code>

yourAnswerToTheQuestion