Wie kann man in Google Map V3 ein einzelnes Infofenster gleichzeitig geöffnet lassen?

aIch weiß, dass diese Frage wiederholt wird,

Ich verwende google map v3 in meiner webbasierten Django-Anwendung. Wo ich verwendeMarkers, Infowindow and polyline. Alles funktioniert einwandfrei, außer wenn ich auf eine Markierung klicke, um den Inhalt nach Info-Fenster anzuzeigen, wurde das zuvor geöffnete Info-Fenster nicht geschlossen.

Ich poste meinen Kartencode (nur der Skriptteil oder welche sind die nützlichen):

var marker = add_marker(flightPlanCoordinates[i][0], flightPlanCoordinates[i][1],"Event Detail",myHtml);

HiermyHtml ist eine Variable, die den Inhalt des Infofensters enthält. Ich habe die Variable hier nicht definiert. SO ignoriere es.

    marker.setMap(map);
    }

    var flightPath = new google.maps.Polyline({
                 path: flightPlanCoordinatesSet,
                 strokeColor: "#FF0000",
                 strokeOpacity: 1.0,
                 strokeWeight: 2
                  });
    flightPath.setMap(map);
}

function add_marker(lat,lng,title,box_html) {
var infowindow = new google.maps.InfoWindow({
    content: box_html
});

var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,this);
});   

return marker;
}

Antworten auf die Frage(1)

Lösung für das Problem

Verwenden Sie statt mehrerer infoWindows nur eine Instanz.

Wenn Sie auf eine Markierung klicken, schließen Sie zuerst das infoWindow, legen Sie dann den neuen Inhalt fest und öffnen Sie das infoWindow.

function add_marker(lat,lng,title,box_html) 
{
  //create the global instance of infoWindow 
  if(!window.infowindow)
  {
    window.infowindow=new google.maps.InfoWindow();
  } 

  var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.close();
    infowindow.setContent(box_html);
    infowindow.open(map,this)
  });   

  return marker;
}
 Ramesh Murugesan08. Juli 2015, 14:01
@ Dr.Molle Ich habe mehrere Marker inLatLngBounds Wenn ich die globale Instanz von infoWindow erstelle, zeigt das letzte infowinodow den gesamten Zeiger an
 Dr.Molle08. Juli 2015, 14:09
@Blue Bells: Kannst du einen Link zur Seite posten?
 Amit Pal11. Juli 2012, 10:20
Danke für die Antwort, ich habe es mit dieser Option versucht. Aber es hat nicht funktioniert. Vielleicht habe ich mich geirrt. Wäre es möglich, dass Sie mir Pseudocode für die Methode zum Hinzufügen von Listenern zeigen
 Dr.Molle11. Juli 2012, 10:40
Die modifizierte Funktion add_marker oben sollte funktionieren.

Ihre Antwort auf die Frage