Foros del Web » Programando para Internet » Javascript »

Google Maps y XML

Estas en el tema de Google Maps y XML en el foro de Javascript en Foros del Web. Wenas Estoy probando a integar Google Maps con un archivos XMl de direcciones siguiendo un tutorial propio de Google ( http://code.google.com/support/bin/a...22&topic=11369 ).El problema es que ...
  #1 (permalink)  
Antiguo 19/02/2008, 12:12
 
Fecha de Ingreso: junio-2005
Mensajes: 131
Antigüedad: 18 años, 10 meses
Puntos: 0
Google Maps y XML

Wenas

Estoy probando a integar Google Maps con un archivos XMl de direcciones siguiendo un tutorial propio de Google ( http://code.google.com/support/bin/a...22&topic=11369 ).El problema es que al intentar leer el XMl me sale un error "documentElement es nulo o no es un objeto". El codigo que tengo es este:

Código:
<script type="text/javascript">
    //<![CDATA[

    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon(); 
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["restaurant"] = iconBlue;
    customIcons["bar"] = iconRed;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(47.614495, -122.341861), 13);

        GDownloadUrl("data.xml", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>
El XML tiene este formato:

Código:
<markers>
  <marker name="Casa" address="" lat="43" lng="-5" type="" /> 
  </markers>
Alguna idea?

Gracias

Última edición por Sidreru; 19/02/2008 a las 12:21
  #2 (permalink)  
Antiguo 23/02/2009, 02:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Google Maps y XML

Buenos días,

Yo tengo el mismo problema, pero solo en Internet Explorer, en Mozilla funciona correctamente.

Un saludo
  #3 (permalink)  
Antiguo 03/03/2009, 07:00
 
Fecha de Ingreso: junio-2005
Mensajes: 22
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Google Maps y XML

Buenas,

Yo estoy con lo mismo, haber si consigo solución.

Saludos.
  #4 (permalink)  
Antiguo 03/03/2009, 08:00
 
Fecha de Ingreso: junio-2005
Mensajes: 22
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Google Maps y XML

Encontré una solución a medias.

Básicamente no hace falta usar documentElement con lo que que se quedaría de la siguiente manera:

markers = xml.getElementsByTagName("marker");

Me ha tocado cambiar algunas cosas para que funcione en IE y ya veremos porque lo tengo sobre wine y Debian y no es lo mismo.

Es un coñazo impresionante el IE y la api de google maps pero poco a poco va saliendo, como no es un tema profesional pues tira, pero si lo fuese pasaba bastante de google maps.


Saludos.
  #5 (permalink)  
Antiguo 25/05/2009, 23:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Google Maps y XML

Mucho tiempo después de estos comentarios a mi me ha servido, solo quiero ver si esta solución "a medias" ya tiene una solución completa o bien si alguien la puede explicar satisfactoriamente. Gracias.
  #6 (permalink)  
Antiguo 25/05/2009, 23:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Google Maps y XML

OK, probando encontré lo siguiente: cuando por alguna razón el archivo XML tiene algún caracter especial (por ejemplo una letra con acento), entonces no lo reconoce como un archivo XML válido, por lo que hay que convertir los campos que tengan acentos (por ejemplo el campo "name" en el ejemplo que mencionan. Esto se hace con la función htmlentities y... todo funciona perfectamente tanto en IE como en Firefox y en Chrome. Espero les sirva.
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 22:43.