Ich mache eine Website über Radfahrer in Norwegen getötet. Für mein Projekt habe ich Google Maps API v3 verwendet, aber ich habe eine vage Vertrautheit mit Javascript. Sie können mein bisheriges Ergebnis sehen: http://salamatstudios.com/googlemapstest/Google Maps API v3 Hinzufügen mehrerer Marker mit Infofenstern w/benutzerdefinierten Text
Grundsätzlich möchte ich mehrere Marker mit Infowindows auf jedem haben. Jedes der Infofenster enthält: Name (Alter), Standort, Datum des Todes, Lesen Sie mehr (die mit einer Seite auf der Website selbst verknüpft werden).
Wie dieses Beispiel hier: http://salamatstudios.com/bicycles/
ich mit nur einem Marker und Infofenster und versuchte arbeiten funktionierte gut. Wenn ich neue Marker mit benutzerdefinierten Infofenstern auf jedem hinzufügen will, bleibe ich stecken. Im Moment habe ich 3 Markierungen an verschiedenen Stellen wie im ersten Link, aber keine der Infofenster erscheint, wenn ich auf den Marker klicke.
Wie gehe ich es um es zu codieren, damit die Infofenster erscheinen? Und wie kann ich einen benutzerdefinierten Text in jedem Infofenster haben? Ich werde etwa 30 bis 40 Marker auf der Karte haben, wenn es fertig ist. Alle Informationsfenster haben unterschiedliche Arten von Informationen.
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(65.18303, 20.47852),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP,
// MAP CONTROLS (START)
mapTypeControl: true,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_TOP
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
},
// MAP CONTROLS (END)
};
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);
// -------------- MARKER 1
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(59.96384, 11.04120),
map: map,
icon: 'img/bike5.png'
});
// MARKER 1'S INFO WINDOW
var infowindow1 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code
// Adding a click event to the marker
google.maps.event.addListener(marker1, 'click', function() {
// Calling the open method of the infoWindow
infowindow1.open(map, marker);
});
// -------- END OF 1st MARKER
// -------------- MARKER 2
var marker2 = new google.maps.Marker({
position: new google.maps.LatLng(60.63040, 8.56102),
map: map,
icon: 'img/bike5.png'
});
// MARKER 2'S INFO WINDOW
var infowindow2 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code
// Adding a click event to the marker
google.maps.event.addListener(marker2, 'click', function() {
// Calling the open method of the infoWindow
infowindow2.open(map, marker);
});
// -------- END OF 2nd MARKER
// -------------- MARKER 3
var marker3 = new google.maps.Marker({
position: new google.maps.LatLng(60.39126, 5.32205),
map: map,
icon: 'img/bike5.png'
});
// MARKER 3'S INFO WINDOW
var infowindow3 = new google.maps.InfoWindow({
content: 'Name<br />Location<br />Date<br /><br /><a href="http://www.db.no" target="_blank">Read more(test link)</a>'
});
// End of infowindow code
// Adding a click event to the marker
google.maps.event.addListener(marker3, 'click', function() {
// Calling the open method of the infoWindow
infowindow3.open(map, marker);
});
// -------- END OF 3rd MARKER
}
google.maps.event.addDomListener(window, 'load', initialize);
Wäre toll, wenn einige mir einen Hinweis geben könnten. Ich habe versucht, ein wenig herumzusuchen, aber ich kann meine Antwort nicht wirklich finden. Danke im Voraus! :-)
Wow! Das hat sofort funktioniert. Vielen Dank. Gibt es auch eine Möglichkeit, eine Funktion zu haben, die das letzte InfoWindow schließt, wenn man auf den nächsten Marker klickt und ein neues InfoWindow öffnet? –
Du meinst wie [dies] (http://www.geocodezip.com/v3_MW_example_map1.html) (übersetzt in v3 aus dem Beispiel in [Mike Williams 'v2 tutorial] (http://econym.org.uk/gmap/) basic1.htm)) (Ich denke darüber als "v2 infowindow Verhalten")? Wenn Sie nur ein Infofenster gleichzeitig geöffnet haben möchten, teilen Sie das gleiche Infofenster für alle Marker. Wenn dies Ihre Frage beantwortet, bitte [akzeptieren] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – geocodezip
Nochmals vielen Dank! Ich habe es eine Weile ausprobiert und bin sehr gescheitert, aber ich habe es am Ende so gemacht, wie ich es wollte. Danke für deine Zeit, geocodepip :-) –