2013-04-30 26 views
5

Ich habe ein Problem mit diesem Code, wenn ich auf einen Marker klicke Ich möchte, dass sich das Infowindow an dieser Position öffnet.Google Maps Infowindow Position

Wenn ich auf jeden Marker klicke, öffnen sich alle auf der gleichen Position.

Code:

App.map = function (data, cb) { 
    App.getData(App.config.LFMurl(), function (data) { 
    App.processData(data, function(arr){  
    var mapOptions = { 
     zoom: 12, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById('map-canvas'), 
     mapOptions) 

    if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var pos = new google.maps.LatLng(position.coords.latitude, 
             position.coords.longitude) 

     var marker 

     $.each(arr, function (index, item) {    
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(item.lat, item.long), 
      map: map,    
      animation: google.maps.Animation.DROP   
     }) 
     google.maps.event.addListener(marker, 'click', function(){        
      var infowindow = new google.maps.InfoWindow({     
      map: map, 
      position: new google.maps.LatLng(item.lat, item.long),         
      content: item.title 
      }) 
      infowindow.open(map, this) 
      console.log(item.artist)    
     }) 
     }) 

     map.setCenter(pos) 
    }, function() { 
     handleNoGeolocation(true)   
    }) 
    } else {  
    handleNoGeolocation(false) // Browser som inte stödjer geolocation 
    } 
}) 
}) 
} 

Antwort

12

Verstanden ... Ich tat dies

am Boden zu arbeiten:

infowindow.open(map, this) 

geändert 'this' mit 'Marker'

+1

danken Dich sehr :) – Preethy

Verwandte Themen