2012-05-27 3 views
0

J'ai deux fonctions initialize() et placeMarker() maintenant ce qui se passe est que dans la méthode initialize chaque fois que la page se charge elle est appelée et elle initialise la carte puis elle envoie une requête à un script php qui envoie les positions de longitude et de latitude en réponse.Marqueurs non placés sur Google Maps API V3

La réponse du script est correcte car je l'ai vérifié en utilisant la boîte d'alerte.

Lorsque j'appelle la fonction placeMarker de l'extérieur de $.each cela fonctionne. Mais si je l'appelle de l'intérieur de $.each, il ne place pas le marqueur.

function initialize(latitude,longitude) 
{ 
    geocoder = new google.maps.Geocoder(); 

    //Initial Map Variables 
    var mymap={ 
      zoom:8, 
      center:new google.maps.LatLng(latitude,longitude), 
      mapTypeId:google.maps.MapTypeId.ROADMAP 
     }; 

     //Initialize Map 
     map=new google.maps.Map(document.getElementById("map_canvas"),mymap); 

      // placeMarker(latitude,longitude); 
      // placeMarker(latitude + 0.2,longitude + 0.2);  When these two are called it places the marker on the map 

    $.ajax({ 
      type: 'GET', 
      url: "Profile_Control.php", 
      data: "ajaxRequest=yes&id="+document.getElementById("compid").value, 
      success:function(data){ 
      var parsedData= $.parseJSON(data); 
      $.each(parsedData,function(){ 
       placeMarker(this['lat'],this['lng']);   

     //not place the marker on the map. 
      }); 
     } 
     }); 
} 


//Place the marker and update the array. 
function placeMarker(latitude,longitude) 
{ 
    var myLatLng = new google.maps.LatLng(latitude,longitude); 

      var marker = new google.maps.Marker({ 
        map: map, 
        position:myLatLng, 
       }); 
} 
+0

Y at-il une erreur du navigateur donné? – wong2

+0

comment vérifier cela? Le navigateur fonctionne normalement. – Mj1992

+0

Si vous utilisez Chrome, appuyez sur Ctrl + Maj + J pour ouvrir la console et voir s'il y a des erreurs – wong2

Répondre

-1

Essayez

$(parsedData).each(function(j) { 
    placeMarker(parsedData[j]['lat'],parsedData[j]['long']); 
}); 
+0

essayé mais ne fonctionne pas – Mj1992

+0

Essayez 'placeMarker (parsedData [j] .lat, parsedData [j] .long); 'alors. En outre, quelle version de jQuery utilisez-vous? – fanf

+0

ne fonctionne pas J'utilise 'v1.6.2' – Mj1992

Questions connexes