Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] Error en kml con google maps

Estas en el tema de Error en kml con google maps en el foro de Frameworks JS en Foros del Web. Buenas! Traigo otro de esos "errores misteriosos" que al parecer solo me pasan a mi... Vamos a ver... estoy remodelando una web. La dirección vieja ...
  #1 (permalink)  
Antiguo 08/05/2013, 00:48
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Error en kml con google maps

Buenas!

Traigo otro de esos "errores misteriosos" que al parecer solo me pasan a mi...

Vamos a ver... estoy remodelando una web. La dirección vieja es "www.web.com", y la nueva "new.web.com".

Entonces, en la vieja tenía una función con google maps que creaba (con php) un archivo kml, y lo pasaba a JS para meterlo en el mapa.

Pero a la hora de renovar la función, no me funciona...

Aparentemente, ambos modelos de archivo están sacados del mismo patrón, por lo que no entiendo el porqué no funciona...

Es decir, cuando creo el mapa, tengo algo así:

var ctaLayer=new google.maps.KmlLayer(url);

donde "url" es la ruta hacia el kml.

Entonces, si el fichero está hecho con el modelo nuevo, no me tira. Sin embargo, si copio un archivo hecho con el esquema viejo y pongo la ruta directamente sí funciona.

Por tanto, el problema está dentro del kml. Pero, si le paso un validador me da como OK el archivo, por lo que no se que puñetas está pasando...

Es bastante frustrante no poder ver qué pasa exactamente... os dejo un par de samples de los archivos que creo:

Código XML:
Ver original
  1. Versión "vieja"
  2.  
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <kml xmlns="http://www.opengis.net/kml/2.2">
  5.  <Document>
  6.   <Style id="0_map">
  7.    <IconStyle>
  8.     <Icon>
  9.      <href>http://www.web.com/img/map/0_map.png</href>
  10.     </Icon>
  11.    </IconStyle>
  12.   </Style>
  13.   <Placemark>
  14.    <name>South Australia</name>
  15.    <description>South Australia, Australia</description>
  16.    <styleUrl>#0_map</styleUrl>
  17.    <Point>
  18.     <coordinates>135.0019989014,-32.0289001465</coordinates>
  19.    </Point>
  20.   </Placemark>
  21.   <Placemark>
  22.    <name>Prueba</name>
  23.    <description><![CDATA[
  24.                                             <span><img src="http://www.web.com/img/ico/1.png" style="width: 30px;height: 30px;"></span>
  25.                                             <span>text</span>
  26.                                             <div><a href="http://www.web.com/item/view/Prueba">View item here</a></div>
  27.                                            ]]>
  28.                              </description>
  29.    <styleUrl>#1_map</styleUrl>
  30.    <Point>
  31.     <coordinates>50.6278915405,26.2704296112</coordinates>
  32.    </Point>
  33.   </Placemark>
  34.  </Document>
  35. </kml>

Código XML:
Ver original
  1. Versión "nueva"
  2.  
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <kml xmlns="http://www.opengis.net/kml/2.2">
  5.     <Document>
  6.         <Style id="0_map">
  7.             <IconStyle>
  8.                 <Icon>
  9.                     <href>http://new.web.com/img/ico/ico_def.png</href>
  10.                 </Icon>
  11.             </IconStyle>
  12.         </Style>
  13.         <Placemark id='Prueba'>
  14.             <name>Prueba</name>
  15.             <description><![CDATA[<span><img src='http://new.web.com/img/ico/ico_2.png' alt='' width='30px' height='30px' style='width:30px;height:30px' /></span><span>text</span><div><a href='http://new.web.com/myCalendar.php?a=ia&i=Prueba' target='_blank'>View item here</a></div>]]></description>
  16.             <styleUrl>#2_map</styleUrl>
  17.             <Point>
  18.                 <coordinates>50.6377716064,25.9304141998</coordinates>
  19.             </Point>
  20.         </Placemark>
  21.     </Document>
  22. </kml>

Los estilos son varios (los he borrado para que no se vea tan grande). Como se ve, hay dos "prototipos" de puntos: unos con enlace y otros sin. Esta parte varía según circunstancias, pero la base es la misma...

¿Alguien ve algún fallo o sabe qué puede estar pasando?

Gracias...
  #2 (permalink)  
Antiguo 08/05/2013, 08:34
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps

Hola DoHITB:
Lo único que me llama la atención es el id (<Placemark id='Prueba'>), generalmente definido desde <Style id="0_map"> y/o <styleUrl>#2_map</styleUrl> (los nombres tomados de tu código)

(A fuer de ser sincero, lo he visto en algún KML sin que haya analizado su funcionamiento).

Los elementos KML compatibles con Google Maps (v3) los tienes en https://developers.google.com/kml/do...tsinmaps?hl=es

Sobra decir (y por obvio no hemos de olvidarlo) que el archivo se encuentra alojado públicamente en Internet, la ruta es absoluta y las limitaciones, tanto de peso por archivocomo de número de enlaces KML en un mismo mapa.
  #3 (permalink)  
Antiguo 09/05/2013, 01:24
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Error en kml con google maps

Gracias por contestar.

A ver, por partes

El "<Placemark id='...'>" lo puse así porque en el validador "feedvalidator.org" me daba un warning diciendo que los Placemark han de tener un id.

El mismo estilo puede ser dado a varios Placemark, de ahí supongo que me daba el warning...

"Sobra decir (y por obvio no hemos de olvidarlo) que el archivo se encuentra alojado públicamente en Internet, la ruta es absoluta y las limitaciones, tanto de peso por archivocomo de número de enlaces KML en un mismo mapa."

Veamos:

- Está alojado públicamente
- La ruta es absoluta
- ¿Con qué te refieres con "el número de enlaces KML en un mismo mapa?
- Elementos permitidos: están todos permitidos (es bastante básico mi kml... jejeje)

La cosa es que si cojo un archivo con formato "viejo" y lo pongo en la nueva ruta me funciona (por lo que creo que el fallo ha de estar en cuando genero el kml... ¿no?)

Es decir, yo tengo "archivo1.kml" en "www.web-vieja.com/mapas/archivo1.kml" y lo copio en "www.web-nueva.com/mapas/archivo2.kml", y me muestra bien el archivo, sin embargo "www.web-nueva.com/mapas/archivo1.kml" (generado con el nuevo esquema) no me lo muestra...

Gracias por la ayuda!
  #4 (permalink)  
Antiguo 09/05/2013, 02:25
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps

Cita:
Iniciado por DoHITB Ver Mensaje
A ver, por partes

El "<Placemark id='...'>" lo puse así porque en el validador "feedvalidator.org" me daba un warning diciendo que los Placemark han de tener un id.

El mismo estilo puede ser dado a varios Placemark, de ahí supongo que me daba el warning...
Te comentaba (y reitero) que lo he visto en alguna parte y no lo he probado. En https://developers.google.com/kml/documentation/kml_tut?hl=es, que entiendo es palabra de developers.google.com, hay un archivo con un muy variado número de ejemplos. Todos los Placemark aparecen sin id.
Me permito dudar (ignorar) si realmente esto es lo que genera tu problema. Es lo que veo diferente y, si para otros usos funciona, no veo que Google Maps lo utilice, incluso en la versión 3.12 lanzada el 7 de mayo (anteayer).

Respexto al id, por ejemplo en https://developers.google.com/kml/do...ples.kml?hl=es (tomado del mismo enlace) verás que no se repite el id y lo trabaja, por ejemplo,
Código XML:
Ver original
  1. ...
  2.         <Placemark>
  3.           <name>Roll over this icon</name>
  4.           <visibility>0</visibility>
  5.           <styleUrl>#exampleStyleMap</styleUrl>
  6.           <Point>
  7.             <coordinates>-122.0856545755255,37.42243077405461,0</coordinates>
  8.           </Point>
  9.         </Placemark>
  10. ...

Cita:
Iniciado por DoHITB Ver Mensaje
"Sobra decir (y por obvio no hemos de olvidarlo) que el archivo se encuentra alojado públicamente en Internet, la ruta es absoluta y las limitaciones, tanto de peso por archivocomo de número de enlaces KML en un mismo mapa."

Veamos:

- Está alojado públicamente
- La ruta es absoluta
- ¿Con qué te refieres con "el número de enlaces KML en un mismo mapa?
- Elementos permitidos: están todos permitidos (es bastante básico mi kml... jejeje)

La cosa es que si cojo un archivo con formato "viejo" y lo pongo en la nueva ruta me funciona (por lo que creo que el fallo ha de estar en cuando genero el kml... ¿no?)

Es decir, yo tengo "archivo1.kml" en "www.web-vieja.com/mapas/archivo1.kml" y lo copio en "www.web-nueva.com/mapas/archivo2.kml", y me muestra bien el archivo, sin embargo "www.web-nueva.com/mapas/archivo1.kml" (generado con el nuevo esquema) no me lo muestra...

Gracias por la ayuda!
- Está alojado públicamente: OK
- La ruta es absoluta: OK
- ¿Con qué te refieres con "el número de enlaces KML en un mismo mapa?
Desde https://developers.google.com/kml/do...sSupport?hl=es (y copio textualmente):
Código Cita textual:
Ver original
  1. Nota: estos límites son temporales y están sujetos a modificaciones en cualquier momento.
  2. Tamaño máximo de archivo recuperado (KML sin formato, GeoRSS sin formato o KMZ comprimido)  3 MB
  3. Tamaño máximo de archivo KML sin comprimir  10 MB
  4. Número máximo de enlaces de red 10
  5. Número máximo del total de recursos aplicables a todo el documento  1.000
  6. Existe un límite en el número de capas KML que se pueden mostrar en un único mapa de Google Maps. Si superas este límite, no se mostrará ninguna capa. El límite se basa en la longitud total de todas las URL transmitidas a la clase KMLLayer y, por tanto, variará según la aplicación; de media, debes poder cargar entre 10 y 20 capas sin superar el límite.

- Elementos permitidos: están todos permitidos (es bastante básico mi kml... jejeje) En tu primera entrada decías que "(los he borrado para que no se vea tan grande)". La mención al enlace no quería sino mostrarte todos los que son compatibles y los que no con Google Maps.
No porque son (permitidos) todos los que están, sino porque tienen que serlo.

Y dicho todo esto, no te puedo ayudar más.
  #5 (permalink)  
Antiguo 09/05/2013, 02:54
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Error en kml con google maps

Ufff... vaya lío voy a contestar poco a poco, que el tema de google maps me supera un poco...

El id de Placemark lo puse porque Aquí me da un warning, aunque me da el kml como válido.

No obstante, lo he quitado, lo he vuelto a generar y nada...

Sobre el tamaño del archivo: de momento, el más grande que he generado son 291 líneas (supongo que un tamaño ínfimo para google maps...). Recorté el archivo porque hay (por ejemplo) muchos estilos diferentes (en concreto 33), y no quería meter todos los estilos en el post. También pueden haber varias Placemark, que en definitiva, comparten uno de los dos esquemas plasmados (por lo que poner varios me pareció redundante).

La verdad es que este tema me está volviendo un poco loco... llevo así varios días y en ningún sitio son capaces de ver qué ***** está pasando aquí...

Si sirve de algo, haciendo pruebas descubrí por accidente que:

- Si uso "http://www.web-nueva.com/mapas//mapa1.kml" me muestra algo (aunque no el archivo que corresponde)

- Si uso "http://www.web-nueva.com/mapas/mapa1.kml" no me muestra nada

- Si copio el archivo a "http://www.web-vieja.com/mapas/mapa1.kml" y uso ésta como ruta, sí lo muestra

A ver si podemos ver algo de luz...

Gracias por tu tiempo!
  #6 (permalink)  
Antiguo 09/05/2013, 03:18
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps

Si no es mucha molestia (por ayudarte en lo que sé y de seguro en lo que aprenda), ¿podrías pasar la ruta absoluta de los KML (ambos) para revisarla?.
Como http://www.web-vieja.com/mapas/mapa1.kml o http://www.web-nueva.com/mapas//mapa1.kml no veo nada.
  #7 (permalink)  
Antiguo 09/05/2013, 03:26
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Error en kml con google maps

Claro.

A ver, te paso las "partes" para que puedas "montar" rutas:

[mandado por privado...]

En ambas rutas están ambos archivos, por lo que puedes ejecutar las 4 combinaciones.

Gracias de nuevo...

Última edición por DoHITB; 09/05/2013 a las 04:20
  #8 (permalink)  
Antiguo 09/05/2013, 05:53
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps

Corregidos los enlaces (los dos últimos que me enviaste tambien corregidos ya que inicialmente no me entraban o había algún espacio) los veo bien (ambos)

Puedes verlo (lo dejaré hasta mañana para que lo veas) en
mapas/gredule.html
y
mapas/new-gredule.html

(Los tomé de mi página de pruebas).
  #9 (permalink)  
Antiguo 09/05/2013, 06:22
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps

Me corrijo

He visto que los puntos donde hay acentos no los interpreta.
Te sugeriría cambiar:

Empieza reunión (El acento llega como signo extraño)

Cambiarlo por <![CDATA[Empieza Reunión ]]>

Si cambias tu KML lo verás corregido en los enlaces míos enviados (yo no puedo hacerlo desde aquí).
  #10 (permalink)  
Antiguo 10/05/2013, 00:02
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Error en kml con google maps

Joder!!!

Por fin!!!

¿Adivinas el fallo? ... la "divina" caché!

Tras leer el último mensaje he pensado "voy a generar otro y hago la prueba", y al generarlo y colgarlo, en el enlace salía el mismo... así que a he ido a la función de generar y he hecho algo como

$nombre = cosas().rand(1, 1000);

y ya funciona...

por lo que creo que debió "cachear" un archivo con mala estructura, y como los generados después tenían el mismo nombre...

Cuánto dolor de cabeza por una tontería!!!

En fin, gracias!

Un saludo!
  #11 (permalink)  
Antiguo 10/05/2013, 01:39
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en kml con google maps



Es bueno tenerlo en cuenta: recuerdo haber tenido problemas parecidos, que se reproducen también con los XML.

Puedo afirmarte, con conocimiento de causa, que pueden incluso saltarse los script o metas que uno ponga en página de limpieza de caché, aunque en estos casos ceden a cerrar el navegador y volver a abrirlo.

Aprendemos de los efectos colaterales.

Saludos y

Etiquetas: funcion, google, js, kml, maps, php
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




La zona horaria es GMT -6. Ahora son las 21:18.