¿Convertir KML a shapefile sin perder atributos usando QGIS?

26

Tengo un archivo KML con cientos de puntos. Para cada punto hay información, como Nombre, Poder, Edad (es un mapa de centrales hidroeléctricas). Si importo ese archivo KML a QGIS, esta información se pierde.

¿Hay alguna manera de mantener esta información?

La información se ve así:

<ExtendedData>
 <SchemaData schemaUrl="#vorlage">
  <SimpleData name="Name">Test</SimpleData>
  <SimpleData name="Power">10895</SimpleData>
  <SimpleData name="Location">L</SimpleData>
 </SchemaData>
</ExtendedData>

¿Hay algún problema con mi código?

    
pregunta Felix 19.09.2012 - 19:31

10 respuestas

16

El ExtendedData no tiene valores de "nombre" correctos.

Por ejemplo

<Data><displayName>System</displayName><value>Riverine</value></Data>

no es importado por GDAL y Qgis Master, mientras que

<Data name="System"><displayName>System</displayName><value>Riverine</value></Data>

se importa.

Puedes cambiar eso con un buen editor de texto.

------------------- Agregado por Miro ---------------------

Para editar KML es necesario usar un editor de texto que permita la "Expresión regular" en la función Reemplazar como PSPad (o Notepad ++ y muchos otros editores de texto libre)

Buscar: <Data><displayName>(.*)</displayName>

Reemplazar: <Data name="$1"><displayName>$1</displayName>

Después de esto, solo use QGIS (la clave es la versión "nueva", incluida la versión 1.9.2 de GDAL en adelante) y "Agregar capa vectorial" y la capa se cargará con todos los "Datos extendidos".

    
respondido por el AndreJ 05.11.2012 - 12:39
8

Convertí uno de los archivos de humedales con globalmapper a shape: adjunté dos capturas de pantalla de archivos dbf convertidos (áreas y líneas):

espero que esto sea lo que quieres ..

    
respondido por el Kurt 05.11.2012 - 13:42
6

Puede usar el software Global Mapper en el que puede exportar / importar fácilmente archivos kml / kmz + adjuntar datos y una gran cantidad de formatos vectoriales y rasterizados. Es uno de los mejores programas ...

enlace

    
respondido por el Sunil 05.11.2012 - 08:09
5

Parece que el libkml de Google no se envía con GDAL 1.9.2 en Ubuntu, específicamente gdal-bin 1.9.2-2 ~ precise4:

$ ogrinfo --formats | grep -i kml
  -> "KML" (read/write)

Para obtener una versión que funcione con libkml y ExtendedData , tuve que compilar GDAL desde svn trunk (r25473) después de compilar libkml desde svn trunk (r864), señalando específicamente que el 1.2.0 El lanzamiento aparentemente no es suficiente, como se documenta en el sitio web de GDAL. Tenga en cuenta que la instalación de libkml0 en Ubuntu precisa (actualmente 1.2.0-1ubuntu6) no ayudará. Realmente necesitas 1.3 o svn trunk, para los cuales no pude encontrar un PPA.

En última instancia, no pude compilar libkml en Ubuntu precisa; hay errores de tipo en la versión de boost que viene con él, y hay errores al ejecutar libtool ya que las dependencias están fuera de orden. Por alguna razón, estos no fueron un problema en la compresión de Debian, donde tuve éxito:

$ ogrinfo --formats | grep -i kml
  -> "LIBKML" (read/write)
  -> "KML" (read/write)

Una vez que logré eso, ejecutar ogr2ogr -f "ESRI Shapefile" foo.shp foo.kml me dio un shapefile que qgis pudo importar, preservando los atributos ExtendedData .

    
respondido por el HorsePunchKid 09.01.2013 - 05:22
4

Utilizando FME 2012 (SP4)

Cargar el KML del lector

Seleccionar un escritor (Shapefile)

conecte los elementos y en la selección de escritura ( copie los atributos de los tipos de características )

Ejecutar el espacio de trabajo

    
respondido por el Mapperz 05.11.2012 - 15:24
4

El controlador kml Ogr2ogr utilizado por Qgis 1.8.0 Lisboa no admite etiquetas kmD ExtendedData.

El controlador LIBKML lo hace, está incorporado en GDAL Versión 1.9.2 en adelante, paquetes OSGEO4W, MS4W y Qgis Master.

Sus datos no están mal, pero el controlador LIBKML en OSGeo4W tuvo algunos problemas con SchemaData. Alternativamente, los siguientes trabajos:

<ExtendedData>
 <Data name="Name"><value>Test</value></Data> 
 <Data name="Power"><value>10895</value></Data>
 <Data name="Location"><value>L</value></Data> 
</ExtendedData>

EDITAR: El error SchemaData ahora está arreglado en el paquete GDAL 1.9.2-2 de OSGEO4W.

    
respondido por el AndreJ 20.09.2012 - 06:49
4

¿Podría probar kml2shp ?

También tienen un nuevo convertidor en línea .

    
respondido por el Rayner 20.09.2012 - 08:47
1

No sé si puedes lograr eso con QGIS. MapWindow tiene un KML2Shapefile , sin embargo.

  

KML2Shapefile es un complemento de MapWindow GIS que convierte Google Earth   Archivos KML y KMZ en shapefiles para uso en un SIG.

     

KML2Shapefile dividirá cada tipo de geometría KML en un archivo separado   shapefile Es compatible con geometrías complejas, y es capaz de presentar   gran parte del KML como datos de atributos.

MapWindow es también un paquete GIS gratuito y de código abierto. Puedes descargarlo e instalarlo gratis. Puede convertir el archivo KML a shapefile utilizando el complemento KML2Shapefile en MapWindow y simplemente cargar el archivo de forma resultante en QGIS. Suponiendo que estés en Windows de todos modos.

La mejor solución que se me ocurre por ahora. Sin embargo, espero que alguien sepa de un complemento para hacerlo en QGIS.

    
respondido por el R.K. 19.09.2012 - 19:52
1

Obtenga Global Mapper, todo lo que tiene que hacer es traer KMZ o KML y luego exportar Vector IMG (archivo ESRI SHP). El mapeador global puede leer la mayoría de los tipos de archivos. Luego, abra la forma en ARC, Global mapper, Manifold, QGIS, ect y vea la tabla de atributos. Toda la información estará allí. También puede abrir el archivo DBF de SHP con Microsoft Excel en este punto y luego guardar como extensión de archivo XLXS si lo desea también.

    
respondido por el Ron Paul 21.11.2013 - 20:48
1

En QGIS 3.2.0, la conversión se puede hacer fácilmente usando la Caja de herramientas.

Seleccionar en la caja de herramientas - > GDAL - > Conversión de vectores - > Convertir formato .... (Caja de Herramientas de Procesos - > GDAL - > Conversión Vectorial - > Convertir Formato)

Seleccione el archivo KML, guárdelo como archivo SHP. También tuve que cambiar el archivo de resultados ("Convertido") en Propiedades - > Fuente (pestaña) - > Codificación de fuente de "UTF-8" a "Windows-1258" para ver correctamente los caracteres en español.

    
respondido por el Andres Bodini 06.09.2018 - 18:31

Lea otras preguntas en las etiquetas