Ich bin neu in der Verwendung des Google Maps-APIs und habe Probleme beim Festlegen eines Klickereignisses für jeden Marker in Rails. Ich wiederhole das Modell von team_locations, um Breiten- und Längengraddaten zu erhalten und setze jeden Marker. Ich setze den Ereignis-Listener in die Schleife, so dass jeder Marker mit einem Listener eingerichtet wird, aber beim Klicken zoomt die Karte immer auf das letzte Element in meiner Tabelle team_locations. Ich nehme an, dass es passiert, weil meine Marker-Variable ständig aktualisiert wird, und das letzte Element in der Liste ist, was es festgelegt ist. Gibt es dafür gute Umgehungsmöglichkeiten?Klick-Ereignis verwendet immer letzten Marker
<script>
function initialize() {
// Center the map on the US
var center = new google.maps.LatLng(37.09024, -95.712891);
var mapOptions = {
zoom: 4,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
<% @team_locations.size.times do |i| %>
var teamLatLng = new google.maps.LatLng(<%= @team_locations[i].latitude %>, <%= @team_locations[i].longitude %>);
var marker = new google.maps.Marker({
position: teamLatLng,
map: map,
label: "<%= @team_locations[i].team_id %>"
});
google.maps.event.addListener(marker,'click',function() {
map.setZoom(8);
map.setCenter(marker.getPosition());
});
marker.setMap(map);
<% end %>
}
google.maps.event.addDomListener(window, "load", initialize);
</script>
Vielen Dank; das Marker-Array hat es geschafft! – Shwheelz