2012-07-03 7 views
0

Ok j'ai une variable PHP datos $ d'une requête mysql comme ceciEssayer de charger des cartes Google marqueurs V3 utilisant JSON

[{"id_marcador":"1","posicion_marcador":"43.011781,-7.55736","titulo_marcador":"Centro de Lugo","dia":"si"}, {"id_marcador":"2","posicion_marcador":"42.991245,-7.545051","titulo_marcador":null,"dia":"no"},{"id_marcador":"3","posicion_marcador":"43.023336,-7.568511","titulo_marcador":null,"dia":"si"},{"id_marcador":"4","posicion_marcador":"42.989965,-7.547188","titulo_marcador":null,"dia":"si"},{"id_marcador":"5","posicion_marcador":"42.989589770827806, -7.547167422409075","titulo_marcador":null,"dia":"si"},{"id_marcador":"6","posicion_marcador":"43.020283,-7.533301","titulo_marcador":"HULA mostrador de citas","dia":"si"},{"id_marcador":"7","posicion_marcador":"43.021092,-7.533697","titulo_marcador":"HULA consultas","dia":"si"},{"id_marcador":"8","posicion_marcador":"43.013792,-7.557657","titulo_marcador":"Recreo plaza de Ferrol","dia":"si"},{"id_marcador":"9","posicion_marcador":"43.024084,-7.567178","titulo_marcador":"El Afilador","dia":"si"},{"id_marcador":"10","posicion_marcador":"43.005945,-7.555733","titulo_marcador":null,"dia":"si"},{"id_marcador":"11","posicion_marcador":"43.005384,-7.555138","titulo_marcador":null,"dia":"si"}] 

Cette variable sera retourné à une forme JSON, maintenant je dois mettre ce les valeurs en format marqueurs Googlemaps quelque chose comme ceci:

var ID_MARCADOR = new google.maps.Marker(
{ 
    position: new google.maps.LatLng (POSICION_MARCADOR), 
    map: map, 
    title: 'TITULO_MARCADOR', 
    icon: 'iconos/gente.png' 
}); 

var ID_MARCADOR = new google.maps.InfoWindow(
{ 
    content:'TITULO_MARCADOR' 
}); 

google.maps.event.addListener(ID_MARCADOR,'click',  function{popID_MARCADOR.open(map,ID_MARCADOR);}) 

la question est ... comment puis-je générer tous les marqueurs et comment puis-je les initialiser dans ma carte? Peut-être utiliser quelque chose comme ça?

JSONsuccess: function(data){ 
    results(data); 

function results(data) 
{ 
    $.each(data,function(index,value) 
    { 
    var data[0] = new google.maps.Marker(
    { 
     position: new google.maps.LatLng (data[1]), 
     map: map, 
     title: data[2], 
     icon: 'iconos/gente.png' 
     ETC... 
     ETC... 
     }); 
} 

Merci pour les réponses et l'aide! = D

Répondre

0

Une chose qui a immédiatement attiré mon attention est que vous déclarez deux vars différents avec le même nom: ID_MARCADOR. Il semble que vous vouliez déclarer le InfoWindow comme: popID_MARCADOR. Mais à part ça, votre approche a l'air bien (même si mon PHP est assez rouillé).

+0

ouais vous avez un bon oeil. quand j'écrivais ce post, j'ai oublié de mettre «pop» dans l'infowindow déclarer. bien que cela n'a pas d'importance afin d'initialiser les marqueurs de la réponse de JSON –

0

Ok Problème résolu = D ici c'est le bon code. Réception de données JSON base de données

$.getJSON("automatizar1.php",{que:'marcadores'},function(json) 
{ 
    marcadores(json);   
}); 

format Array:

{"id_marcador":"1","lat_marcador":"43.0118","long_marcador":"-7.55736","titulo_marcador":"Centro de Lugo","tipo_marcador":"trafico","nombre_mp3":"centro","dia":"si"} 

La fonction magique

function marcadores(json) 
{ 

     $.each(json,function(index,value) 
     { 

      var id ="a"+json[index].id_marcador; 
      var popid="pop"+json[index].id_marcador; 
      var lat=json[index].lat_marcador; 
      var long=json[index].long_marcador; 
      var titulo=json[index].titulo_marcador; 
      var icono=json[index].tipo_marcador; 


      id = new google.maps.Marker(
      { 
       position: new google.maps.LatLng (lat, long), 
       map: map, 
       title: titulo, 
       icon: 'iconos/'+icono+'.png' 
      }); 


      popid = new google.maps.InfoWindow(
      { 
       content:'mycontent' 

      }); 

      google.maps.event.addListener(id,'click', function(){popid.open(map,id);});  

     }); 
} 
Questions connexes