6 votos

convertir kml a gpx programáticamente o con un comando

Tengo un archivo KML que descargué de Google Maps "My Maps". Este KML tiene muchas capas, cada capa con muchos POIs. Me gustaría convertir el KML con herramientas como ogr2ogr de la GDAL biblioteca o algunos scripts de python, pero lo encuentro muy difícil.

Hasta ahora:

  • ogr2ogr -f GPX my_file.gpx my_file.kml
    • da ERROR 6: Cannot create GPX layer MY_LAYER_XYZ with unknown geometry type
  • ogr2ogr -nlt POINT -f GPX my_file.gpx my_file.kml
    • da muchos errores en varios campos (que supongo provienen de cómo Google construye el KML) similares a ERROR 6: Field of name 'description' is not supported in GPX schema. Use GPX_USE_EXTENSIONS creation option to allow use of the <extensions> element.
    • entonces también da ERROR 1: Features without geometry or with non-ponctual geometries not supported by GPX writer in waypoints layer. ERROR 1: Unable to write feature 2 from layer MY_LAYER_XYZ.
  • ogr2ogr -nlt POINT -f GPX -dsco GPX_USE_EXTENSIONS=YES my_file.gpx my_file.kml
    • da ERROR 1: Features without geometry or with non-ponctual geometries not supported by GPX writer in waypoints layer. ERROR 1: Unable to write feature 2 from layer MY_LAYER_XYZ.
  • ogr2ogr -nlt POINT -f GPX -dsco GPX_USE_EXTENSIONS=YES -lco FORCE_GPX_TRACK=YES my_file.gpx my_file.kml
    • da ERROR 1: Features without geometry or with non-ponctual geometries not supported by GPX writer in waypoints layer. ERROR 1: Unable to write feature 2 from layer MY_LAYER_XYZ.

He probado este python script kml2gpx.py en https://gist.github.com/timabell/8791116 que mirando el código debería iterar a través del KML procesándolo como contenido "XML normal" (usando cosas como import xml.sax ), pero la salida no contiene ninguno de los PDI del KML original.

No estoy familiarizado con el KML y el estándar GPX, sólo deseaba que hubiera un práctico script para convertir uno en otro. ¿Es posible?

7voto

Lucas Puntos 1072

He terminado usando gpsbabel que proporciona una interfaz gráfica de usuario junto con el comando.

En ubuntu/debian:

sudo apt-get install gpsbabel-gui

Esto instalará el comando gpsbabel también.

Puedes seguir la configuración de la GUI, es fácil, en mi caso quité todas las opciones extra para convertir tracks y rutas (sólo me interesaban los waypoints). Por lo demás el comando es el siguiente:

gpsbabel -w -i kml -f <INPUT_FILE_NAME.kml> -o gpx -F <OUTPUT_FILE_NAME.gpx>

2voto

Robert Puntos 122

Podrías intentar usar GPSBabel. Hace un gran trabajo de conversión entre formatos GPS, incluyendo GPX y KML. Está disponible como aplicación de escritorio y como herramienta de línea de comandos. Más información sobre el soporte de varios sistemas operativos está disponible en la documentación, aquí: https://www.gpsbabel.org/osnotes.html

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X