Convertir shapefiles en kml y viceversa con QGIS

Convertir shapefiles en kml (Keyhole Markup Language de Google Earth) o viceversa (de kml a shp) es muy fácil en QGIS. Ya no se requiere de aplicaciones conversoras de terceros para tal fin. Para ello, sólo basta cargar el shapefile en QGIS y en la ventana de capas, en el menú contextual que se despliega con el botón derecho del mouse, se selecciona “Guardar como…” donde en formato, se cambia a “Keyhole Markup Language” (kml). Allí también se escoge el nombre y la ruta del archivo a guardar así como la proyección.

Para probarlo, usé un shapefile de unas lagunas que digitalicé rápidamente:

a partir de una imagen georreferenciada tomada de Google Earth. El resultado fue el siguiente:

El shape está ligeramente desplazado lo que puede atribuirse a los errores acumulados en la georreferenciación y la digitalización (muy rápida; sólo con fines didácticos) a partir de la imagen original.

Por otra parte, para convertir de kml a shp basta con Capa -> Añadir capa vectorial -> Explorar y en la ventana que se despliega, en Tipo, seleccionar Keyhole Markup Languange antes de Abrir -> Open. Finalmente, se procede como se señala al principio, es decir, “Guardar como…”, pero en formato shapefile de ESRI.

About these ads
Esta entrada fue publicada en QGIS, SIG, Software Libre. Guarda el enlace permanente.

49 respuestas a Convertir shapefiles en kml y viceversa con QGIS

  1. Pingback: Transformar archivos kml (Google Earth) en shapefile |

  2. eddojh dijo:

    Muy bueno y muy útil, aunque tengo problemas para calcular áreas de éstos polígonos de GoogleEarth pues el QGIS me maneja las dimensiones en milímetros y salen pequeñas… aun sigo investigando cual es el problema.

    Saludos y felicidades por el blog.

    • Si mal no recuerdo, el QGIS tiene dos maneras de configurar la opción en metros. Para el proyecto en si y en las configuraciones por defecto. Verifica en estás últimas. A lo mejor está en mm.

      Gracias por tu comentario y saludos.

  3. kassy dijo:

    Pero google segun tengo entendido usa otro tipo de proyeccion por ejemplo para coordenadas geograficas google usa EPSG:900913 – Google Mercator y no EPSG:4326 – WGS 84 y que produce un desfase.
    Como solucionaste esto; reproyectaste la capa???, realmente estoy muy confundiday seria de gran ayuda un comentario tuyo.
    Muy bonito tu blog

    • Google Mercator no tiene nada que ver con coordenadas geográficas. Es un sistema de proyección en metros. Google Earth lo usa en su motor interno para los acercamientos porque, circunscrita a pequeñas áreas, da poca distorsión. Ahora, de cara al usuario, está calibrado para que puedas cambiar de geográficas a UTM con el esferoide WGS 84 o viceversa.

      Con relación a como solucioné esto te voy a señalar primero que si observas la tabla atributiva de la primera imagen te darás cuenta que hay valores de geometría en ella. Esto significa que para que sea compatible con Google Earth estoy usando la proyección UTM con WGS 84. La zona de Venezuela considerada fue UTM 19 N. En consecuencia, el proyecto fue definido para operar con metros y en la referida proyección por lo que el archivo vectorial que representa las lagunas también está en UTM con WGS 84 zona 19N. Por tanto, lo único que hice fue guardarlo con el formato *.kml. Si pinchas en ese tipo de archivos y tienes Google Erth configurado, en Preferencias, para UTM te llevará directamente a esa región.

      Por otra parte, muchas gracias por tu comentario final.

      Saludos!

  4. Federico dijo:

    Hola,
    Cuando levanto en QGis el kml, se pierde la información que este tenía. Por ejemplo. cotas de las curvas de nivel o comentarios de puntos.
    Sabés por donde puede venir el problema? Saludos!

  5. Albert dijo:

    Hola muy buenas,
    Felicidades por la explicación, el tema es interesante y me ha surgido una duda, yo he hecho lo mismo pero con Arcview, y Shp2kml, y he tenido el mismo problema de ligero desplazamiento (150m) de la shape. Comentas que ” puede atribuirse a los errores acumulados en la georreferenciación y la digitalización (muy rápida; sólo con fines didácticos) a partir de la imagen original”.
    Como se puede mejorar el proceso para ajustar más la shape al transformarla a kml?
    Muchas gracias!

    • Cuando me refiero a “ligero desplazamiento” es de unos pocos metros. Pueden llegar a ser de unos 20 m a escalas pequeñas si no se toman las precauciones necesarias. Los 150 m que tu refieres ya no entran en la categoría de “ligero”. Si a mi me hubiese pasado los shapes de las lagunas habrían quedado fuera del mapa. Lo tuyo parece más bien un problema de proyección donde los desplazamientos por uso del datum incorrecto pueden andar por ese orden.

      • Federico dijo:

        Hola José, sabes por qué podría estar perdiendo la información del kml cuando lo llevo al SHP en QGIS? Gracias

    • SANTIAGO FLORES ESPINO dijo:

      Buenas noches. Soy Santiago Fores de Miguel Auza, Zacatecas, México. Me piden para predios agrícolas georreferenciación del predio. Deberá contar con un formato shape en proyección UTM de las zonas 13, 12, 14 y con el sistema de referencia WGS84; incluyendo el archivo de parámetros de proyección (*.prj). Se puede hacer con el programa ARCGIS 10.1 o que paquetes se pueden usar para este trabajo? Las coordenadas geográficas las tengo en Google Earth (KML).

      • Abre tu kml en ArcGis y guárdalo como shapefile. Si está en geográficas reproyéctalo a los diferentes sistemas que te piden (me imagino que es para que observes las diferencias porque sólo tiene sentido uno de ellos). Automáticamente se generará el *.prj.

      • SANTIAGO FLORES ESPINO dijo:

        SANTIAGO FLORES MIGUEL AUZA, ZAC. MEX.
        bueno gracias por tu apoyo lo hice en QGIS 1.8 SI ME DIO LA CONVERSION DE KML A ARCHIVO DE QGIS ME VOY A RASTER PARA DEFINIR PROYECCIONES EN ASIGNAR PROYECIONES NO ENTIENDO EN ARCHIVO DE ENTRADA QUE DEBO SELECIONAR, EN EL SRL DESEADO ESTOY SELECIONANDO PARA NUESTRA ZONA WGS84 / UTM ZONE 13N. LAS PROYECCIONES LAS QUIERO PARA FORMATO SHAPE Y PARAMETROS DE PROYECCION *PRJ

  6. Javis dijo:

    Me interesaría poner los valores de un atributo origen (shape) como etiqueta de las geometrías resultantes en KML. ¿Es posible hacerlo en QGIS durante la transformación de formato?

  7. juan dijo:

    Gracias por el aporte, me ocurre algo similar a lo que describe Federico. Tengo un archivo KML, al convertirlo a shp con qgis desaparecen los atributos de los puntos, ¿sabes si hay solución?

  8. christian dijo:

    gracias, muy buen dato!!!!!

  9. Josep Ma dijo:

    buenas!

    cómo puedo hacer para que al exportar un shp a kml, luego en google earth pueda tener las entidades etiquetadas con un atributo de la base de datos.

    saludos,

  10. Joseline dijo:

    Hola,
    Muchas gracias por la info es muy útil. En lo que a mi respecta, generalmente busco información que aparece en GoogleEarth y la guardo como kml. El problema que tengo, es que cuando abro los archivos en Qgis toda la información obtenida de GoogleEarth se muestra en grados (lat-long). Traté de verificar si la configuración estaba errónea, pero no sé en qué me puedo estar equivocando.
    Saludos

  11. pili dijo:

    hola, buenas tardes, por favor, estoy intentando pasar un .shp a kml, pero no sé dónde tengo que cargar el shp.. soy novata total. muchas gracias! un saludo

  12. Iván Camilo Salamanca dijo:

    Hola donde podria conseguir el QGIS amigo, o en que link??

  13. Ricardo dijo:

    Que tal, soy nuevo en esto de qgis, y tengo un problema :( tengo un shapefile (.shp) y lo abro con qgis y uso el plugin de layers para sobreponer los puntos en google mapa, ahí todo bien y quiero obtener los valores de latitud y longitud y he visto varios tutoriales el problema es que me devuelven valores muy grandes(ejemplo: 4223444.34555,3322344.5433) y me gustaría que me devolviera estos valores con respecto a google maps (ejemplo: 34.455,87.44) para poder usarlo con GPS o geolocalizacion con google maps. No se si se pueda hacer esto gracias por la ayuda saludos y excelente post.

    • Si eres nuevo con QGIS no te compliques y usa directamente Google Maps para agregar tus puntos al GPS. El shapefile y las capas de Google Maps bajadas con el plugin probablemente no estén en el mismo sistema de proyección y eso, por ahora, no estarás en capacidad de resolverlo rápidamente.

  14. Para SANTIAGO FLORES MIGUEL AUZA, ZAC. MEX.

    Haz eso en ArcGis como te recomendé porque en QGIS 1.8 no se puede para shapefile. Estará en la versión 1.9 que ahora es “inestable” en Linux (la he usado allí y funciona pero para Windows todavía no es posible).

    • SANTIAGO FLORES ESPINO dijo:

      JOSE DISCULPA TU TIEMPO MUCHAS GRACIAS POR ATENDERME NO SE UTILIZAR EL ARCGIS NO PUEDO ABRIR EL KML EN ARCGIS Y GUARDARLO EN SHAPEFILES COMO ME INDICASTE, ME PIDE QUE HAGA KEYOLE MARKUP LANGUAGE [KML] Y REPROYECCTARLOS A WGS84 / UTM ZONE 13N

      • Tengo más de un año que no utilizo ArcGis (solía emplear la versión 9.2 y 9.3) pero instalé recientemente la 10.1 y te puedo decir que ya no es tan intuitivo como antes. Creé un kml de zacatecas y estuve un buen rato tratando de abrirlo en ArcGis. Lo logré al transformarlo de kml a *.lyr con la arctoolbox pero esa es la única opción. Nada de shapefiles. Como lo creé en WGS 84 long/lat traté de reproyectarlo a UTM zona 13 y me daba error. No tengo instalado todavía el QGIS 1.8 en mi XP para probar pero debería funcionar así:

        1) Guarda tu kml en QGIS como shapefile asegurádote de que el sistema de proyección quede registrado.
        2) Luego reproyecta el shapefile a UTM zona 13 con las arctoolbox:

        Data Management Tools-> Projections and Transformations -> Feature -> Project

        Esperemos que funcione.

        Nota1: Ya lo instalé y funciona tal como te señalé arriba. Cuando escojas el sistema de proyección de salida tendría que ser: Projected Coordinated System -> UTM -> WGS 1984 -> Nothern Hemisphere -> WGS 1984 UTM zone 13

        Nota2: Menos mal que me hiciste la pregunta. Ya descubrí como “reproyectar” un shapefile desde QGIS. Es mucho más fácil que en ArcGis. Sólo tenía que pensarlo un poco. En los setting de QGIS establece que tome la proyección “al vuelo”. Luego, configura las propiedades del proyecto para que sea WGS 84 UTM zona 13. Abre el shapefile WGS 84 en coordenadas geográficas y verás que no despliega grados decimales sino metros. Sin embargo, en propiedades de la capa verás que es WGS 84 long/lat. Para “reproyectarlo” basta simplemente con “Guardar como” especificando el sistema de proyección a WGS 84 UTM zona 13 y obviamente un nombre diferente. Para probar que si funcionaba lo abrí también en ArcGis y la proyección era la correcta.

  15. Nicolás dijo:

    Hola José que tal, consulto bastante tu blog y me es muy útil, un gusto contactarte.

    He visto que varios aquí han preguntado como mantener los atributos del shape de qGIS una vez exportado a kml, pero no ha habido ninguna respuesta suya en referencia a ese tema.
    ¿Es que no se puede hacer?

    Yo necesito exportar un shape de puntos de qGIS a kml y que cuando lo abra en Earth mantenga al menos los números de ID porque sino no me quedo sin ninguna referencia para trabajar en Earth con esos puntos.

    Por favor si conoce como hacerlo y si sabe que no se puede realizar, le agradecería mucho su ayuda.

    Saludos Cordiales

    Nicolás

    • Desconocía este comportamiento en QGIS, es decir, que ni siquiera mantiene los números ID al exportar de shape de puntos a kml. Lo que si te puedo decir es que, recientemente, con base a otra pregunta en el Blog, descubrí que con ArcGis 10.1 se mantiene toda la información de un archivo kml al transformarlo en *.lyr (y no da otra opción de transformación) mientras que con QGIS no es posible para shapefile. Lo inverso que tu quieres no sé si es factible (aunque es muy probable que lo sea) pero podías probarlo con la versión de uso limitado que ofrecen en la web de ESRI; si no tienes acceso a una licencia de ArcGis.

      Saludos

  16. Salo Yepe dijo:

    Buenas TARDES. Mi nombres es Salomon Yépez, Guanajuato, México. Me piden la georeferenciación de predios agrícolas. Me establecen que se deberá contar con un formato shape en proyección UTM de las zonas correspondiente y con el sistema de referencia WGS84; incluyendo el archivo de parámetros de proyección (*.prj). José, lo anterior lo pudiera hacer con el programa AUTOCAD 2010. Las coordenadas geográficas las tengo en Google Earth.

  17. Javier dijo:

    Hola! Soy nuevo en QGIS y estoy intentando agregar una capa de datos waipoints en excel. Primero abro Open Plugins Layer… y después cargo la capa de archivo con la que importo el excel pero NO aparecen los waipoints geolocalizados en el mapa. Cómo se hace? Qué puede ser que esté pasando? Gracias!

  18. En QGIS la filosofía es que ni siquiera necesites la intermediación de una aplicación pesada como una hoja de cálculo para incorporar este tipo de datos a una vista. Basta con un simple archivo de texto plano. Aquí, en el pdf del post, tienes como se hace:

    Añadir capa de texto delimitado (shape de puntos) y transformación a shapes polilínea y polígono con QGIS y SAGA GIS

    En tu caso, haz un copy-paste de tus datos en Excel a un archivo de texto plano y procede luego como señala el pdf. Antes de importarlo a QGIS asegúrate de que quedo bien ensamblado abriéndolo con el block de notas. Debe quedar como esto:

    ID X Y
    1 676956,79640719 1094900,11377246
    2 677413,26347305 1095304,01796407
    3 677983,15568862 1095140,79640719
    4 677839,29940120 1094667,73053892
    5 677266,64071856 1094573,67065868
    

    Saludos

    • Javier dijo:

      Muchas Gracias! y también puedo exportarlo como .kmz?

      • Como kml. El kmz es un archivo comprimido. Lo puedes hacer con Winzip y luego cambias la extensión a kmz.

      • Javier dijo:

        Voy aprendiendo! Logré importar un archivo con waypoints de excel, lo que no logro es hacerlo sobre un mapa. Yo abro primero una imagen de google desde OpenLayers Plugin pero después no se cómo ver sobre esa imagen una capa de texto (waipoints desde excel). Pueden ayudarme? Gracias

  19. Cuando actives OpenLayers Plugin trata que en las opciones de configuración del proyecto, pestaña SRC, marques la opción de toma de proyección al vuelo. Observa en la equina inferior derecha que el EPSG es 3857 (pseudo Mercator o proyección de Google). Carga posteriormente el shapefile que te interese.

    • Javier dijo:

      Me marca un solo punto en un lugar debajo de áfrica. Son unos puntos georeferanciados en argentina, logro verlos bien si creo la capa al iniciar, ahora si intento verlos sobre una imagen de Bing (Open plugins layers) me marca un solo punto en cualquier lado.

      Se puede agregar posteriormente una imagen para corroborar que me esté ubicando bien los puntos?

      Gracias

  20. Matias dijo:

    Jose; estoy tratando de abrir un archivo shp en google earth, puedo guardarlo como kml como explicas vos pero cuando lo abro en google earth me los muestra todo como punto( Pin amarillo), como puedo solucionarlo

  21. gracias y a seguir compartiendo conocimiento

  22. Sandra dijo:

    Hola,
    He realizado el procedimiento para convertir kml en shp y me dice que la fuente de datos no es válida, no se que hacer?
    Me puede ayudar?
    Gracias

  23. max dijo:

    hola tengo un problema cuando le doy guardar en kml, si aparece el archivo en donde lo guardo solo que en pdf y no me respeta para proyectarlo al google…. saludos

  24. Victor dijo:

    Hola,
    He realizado el procedimiento para convertir kml en shp y me dice que la fuente de datos no es válida, no se que hacer?
    Me puede ayudar?
    Gracias

  25. Toni dijo:

    Has probado KML Creator . Puede exportar a KML ,simbología simple, por grupos, por clasificación, diseñar ballons, etc… Te dejo un par de links

    http://www.vscenegis.com/index.php/es/home/kml-creator

  26. Flor dijo:

    Buenas tardes, quisiera saber si esto mismo puede utilizarse para convertir un shape de puntos a kml, me explico?

    Puedo generar una ruta a recorrer con mi gps desde un shape de puntos de Qgis?

    Gracias!

  27. ariadna dijo:

    me salen en el polo norte.. porque??

  28. Tomas dijo:

    Hola Jose. Antes que nada, eh consultado bastante tu blog y casi podria decir que se manejar el QGis gracias a vos, muchas gracias por todas las “clases”! jaja.
    Ahora hablando en serio, estoy tratando de proyectar un shp a kml, lo hice anteriormente sin problema aunque en esta ocasión se me esta haciendo imposible realizarlo.
    Mi problema es que cuando lo abro en el google earth se me deforma todo, pero completamente, es mas, el planeta se cubre con las lineas de la capa, no se si me explico, imagínate el planeta todo en color rojo (el de la capa) y solo visible los limites de los paises en amarillo.

    No se si sera reelevante pero es una capa de mas de 14 megas, tiene muchos datos, pero no creo que eso complique la transformacion.
    Espero tu pronta respuesta.

  29. julian dijo:

    Muchas Gracias por tu ayuda, tengo una pregunta, como hago para que la capa que exporto a KML me deje habilitado los label de los poligonos, o que me muestre el nombre del poligono en la vista desplegable. Gracias

Deja un comentario

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s