Foros del Web » Programando para Internet » Javascript »

Poner muchas marcas en google maps, mediante un listado php

Estas en el tema de Poner muchas marcas en google maps, mediante un listado php en el foro de Javascript en Foros del Web. Hola a todos, puesto que mi duda incluye php javascript google maps, no sabia donde ponerla, si fuera en otro foro por favor muevanlo. El ...
  #1 (permalink)  
Antiguo 25/05/2009, 10:47
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Poner muchas marcas en google maps, mediante un listado php

Hola a todos, puesto que mi duda incluye php javascript google maps, no sabia donde ponerla, si fuera en otro foro por favor muevanlo.

El caso es que tengo un listado de unos 40 pisos, en una base de datos, y quiero que en la web aparezca un mapa de Gmaps, con todas las localizaciones.

Pero cuando hago la programación me encuentro con el siguiente problema.

A. me muestra los que les da la gana cada vez que recargo carga unos diferentes.

B. El cuadro de texto que se abre al hacer click, es siempre el del ultimo piso que devuelve la query.

os pego el código que hago, por que me estoy volviendo loco!!!!!

Código PHP:
<?
    $general_map_query 
mysql_query("SELECT * from doro_apartament");
?>
<script>
function load() {

    var miIcono = new GIcon(G_DEFAULT_ICON);
        miIcono.image = "images/style/gmap_logo.png";
   if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      var geocenter = new GClientGeocoder();
            geocenter.getLatLng("sitges, barcelona", function(cent) {
                    map.setCenter(cent,13);
            });
           
      function crearMarca(punto, html){
         var miMarca = new GMarker(punto,miIcono);
         GEvent.addListener(miMarca, "click", function (){
            miMarca.openInfoWindowHtml(html);
         });
         map.addOverlay(miMarca);
      }
             <? while($general_map mysql_fetch_array($general_map_query)){
             
?>            
            var html = "<? echo "<h2>$general_map[title_es]</h2>"?>";
            var geocoder = new GClientGeocoder();
            geocoder.getLatLng("<? echo $general_map[adress]; ?>", function(point) {
                    crearMarca(point,html);
            });
            <? ?>
      
   }

window.onload=load
</script>
  #2 (permalink)  
Antiguo 09/11/2009, 07:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Poner muchas marcas en google maps, mediante un listado php

Hola Onatsu!

Creo que el problema es que haces un unico map.addOverlay(); y deberias hacer uno por c/u de los resultados de la query. Creo q la solucion es iterar sobre los resultados de la sql con un for.

De todas formas te aconsejo separar JS de PHP, de esta forma queda mejor organizado tu codigo y podes detectar mejor los errores.
Yo armaria un JS que haga una llamada ajax, en PHP tendria la consulta sql y retornaria un XMl con los resultados y en JS iteraria sobre los mismos y crearia un marker por cada uno.

Espero q t haya sido util...exitosss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:58.