Foros del Web » Programando para Internet » PHP »

Generar archivo KML para descarga

Estas en el tema de Generar archivo KML para descarga en el foro de PHP en Foros del Web. Estimados, tengan todos Uds. buen día. Estoy desarrollando un script con PHP y MySQL, donde me conecto a una base de datos, recolecto unos datos ...
  #1 (permalink)  
Antiguo 21/11/2012, 11:33
 
Fecha de Ingreso: noviembre-2012
Ubicación: Buenos Aires, Argentina
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Generar archivo KML para descarga

Estimados,
tengan todos Uds. buen día.
Estoy desarrollando un script con PHP y MySQL, donde me conecto a una base de datos, recolecto unos datos de una tabla y con ellos, genero un Archivo KML (de esos que son legibles por Google Earth), y finalmente, lo hago descargar automáticamente por el usuario. Ahora bien, el problema aparece al descargar el archivo generado y querer abrirlo con Google Earth, el cual me da un error al leer el archivo.
Analizando el mismo, veo que, al generarlo, el script me agrega al inicio del mismo, varios espacios en blanco a modo de "sangría" o "tabulación". Si la elimino a mano, es perfectamente compatible con lo que quiero hacer, pero no logro elimianr esos espacios.
Les copio a continuación el script:


Código PHP:
Ver original
  1. <?php
  2.         //Conexión a la base de datos
  3.     $Servidor = 'nombre_servidor';
  4.     $Usr = 'usuario';
  5.     $Pwd = 'clave';
  6.     $base = "nombre_base";
  7.     $db = mysql_connect($Servidor,$Usr,$Pwd) or die(mysql_error());
  8.     mysql_select_db($base);            
  9.                
  10.     $result = mysql_query("SELECT * FROM tabla1",$db);
  11.  
  12. // Creo un ARRAY e inserto en él una fila para cada línea del KML final.
  13.  
  14. $kml[] = '<?xml version="1.0" encoding="UTF-8"?>';
  15. $kml[] = '<kml xmlns="http://earth.google.com/kml/2.1">';
  16. $kml[] = ' <Document>';
  17. $kml[] = ' <Style id="fijaStyle">';
  18. $kml[] = ' <IconStyle id="fijaIcon">';
  19. $kml[] = ' <Icon>';
  20. $kml[] = ' <href>http://maps.google.com/mapfiles/kml/pal2/icon63.png</href>';
  21. $kml[] = ' </Icon>';
  22. $kml[] = ' </IconStyle>';
  23. $kml[] = ' </Style>';
  24.  
  25. // Iteraciones dentro del bucle WHILE, escribiendo un nodo por cada fila de la consulta.
  26. while ($row = @mysql_fetch_assoc($result))
  27. {
  28.   $kml[] = ' <Placemark id="placemark' . $row['id_camara'] . '">';
  29.   $kml[] = ' <name>' . htmlentities($row['Domicilio']) . '</name>';
  30.   $kml[] = ' <description>' . htmlentities($row['Domicilio1']) . '</description>';
  31.   $kml[] = ' <styleUrl>#fija'.'Style</styleUrl>';
  32.   $kml[] = ' <Point>';
  33.   $kml[] = ' <coordinates>' . $row['Longitud'] . ','  . $row['Latitud'] . '</coordinates>';
  34.   $kml[] = ' </Point>';
  35.   $kml[] = ' </Placemark>';
  36.  
  37. }
  38.  
  39. // Fin del Archivo XML
  40. $kml[] = ' </Document>';
  41. $kml[] = '</kml>';
  42.  
  43. //Genero el archivo y lo pongo para descarga directa.
  44. $kmlOutput = join("\n", $kml);
  45. header('Content-type: application/vnd.google-earth.kml+xml');
  46. echo $kmlOutput;
  47.  
  48. ?>

Si alguno lo prueba, verá que, al descargar el archivo y abrirlo para editarlo, se encontrará con todo el código escrito correctamente, a excepción de la primera línea en donde se ve lo siguiente:

Linea 1 generada: " <?xml version="1.0" encoding="UTF-8"?>"
y debiera aparecer sin los espacios del comienzo:

Linea 1 correcta: "<?xml version="1.0" encoding="UTF-8"?>"

* La documentación de como generar el KML la obtuve del siguient sitio web:
"https://developers.google.com/kml/articles/phpmysqlkml?hl=es"

Aguardo comentarios.
Gracias y saludos!

Etiquetas: kml
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 04:24.