¿Conversión entre KML y formato de archivo de forma (SHP)?


Respuestas:


129

Usando el código abierto ogr2ogrde GDAL / OGR :

ogr2ogr -f 'ESRI Shapefile' output.shp input.kml

20
... y solo para evitar la siguiente pregunta natural, también funciona a la inversa: ogr2ogr -f KML output.kml input.shp
glennon

8
Si prefiere usar herramientas basadas en GUI, QGIS puede actuar como un front-end para ogr2ogr.
oscuro

1
desearía que hubiera un sitio web de GDAL / OGR en línea pista indirecta
Pure.Krome

1
@mattwilkie Creo que se refería a algo como Zamzar.com. Un servicio de conversión en línea.
RK

1
Tuve que usar comillas dobles para el argumento "ESRI Shapefile".
MatthewD

30

ArcGIS 10 tiene una herramienta GP llamada KML To Layer que convierte KML en una clase de entidad. Busque KML usando la nueva búsqueda. He usado esto para tomar el derrame de petróleo kml de Google y convertirlos en SHP.

KML To Layer solo puede crear una clase de entidad de geodatabase, por lo que debe seguir un paso de Clase de entidad a Clase de entidad para convertirlo en un archivo de forma.


2
La herramienta mencionada aquí parece ser KML a capa, pero eso solo puede crear una clase de entidad de geodatabase que necesita ser seguida por el paso Clase de entidad a clase de entidad para convertirlo en un archivo de forma.
PolyGeo

19

Use ogr2ogr, pero si no está interesado en una línea de comando, pruebe ogr2gui , un front end realmente simple para ogr2ogr.


10

Para usar datos espaciales publicados como un archivo KML o KMZ en ArcGIS, primero debe convertir el KML a una clase de entidad (shapefile). La Universidad de Connecticut ha publicado un script para crear archivos shape de KML llamado KML_to_Shp.tbx. Funciona bastante bien y puedes usarlo desde ArcToolbox. Debido a que KML siempre (debería) estar en coordenadas geográficas (WGS84), eventualmente querrá transformarlos a UTM Zone 15N NAD83 ...

Al igual que con todas las herramientas nuevas, revise la documentación antes de usar. Esto se puede encontrar en el sitio web del Centro de Educación e Investigación sobre el Uso del Suelo de la UCONN. Una vez que lo agrega a su caja de herramientas y comprende sus limitaciones, la herramienta es muy sencilla de usar.

http://clear.uconn.edu/tools/kml_to_shp/index.htm


3
No siempre desea UTM Zone 15N NAD83, desea la zona adecuada para los datos. Y también puede proyectar usando WGS84 (es decir, WGS84 no significa latlon)
Vinko Vrsalovic


10

Un producto comercial más que vale la pena mencionar es Global Mapper . Esto cae en la categoría de ver, convertir, volver a proyectar casi cualquier dato geográfico que pueda imaginar. Utilizo mucho la versión gratuita en una clase que enseño y casi todos se alejan comentando cómo esta es la navaja suiza de las herramientas SIG (aunque la versión gratuita no hace traducciones, expone todos los menús y opciones). Bien vale la pena el costo en mi experiencia.


10

Junte más opciones además de las otras respuestas ...

La aplicación fdo2fdo de SL-King , que utiliza las bibliotecas FDO de código abierto, le permite realizar KML a SHP y viceversa. Incluye una GUI (que expresa traducciones de formato a formato y traducciones de mapeo de esquemas más personalizadas), así como una herramienta de línea de comandos.

Para aplicaciones adecuadas, el FME de Safe Software le brinda un control sorprendente sobre cómo mapear la información de origen en el destino. Si tiene ArcGIS, puede acceder a esto a través de la Extensión de interoperabilidad de datos ( lista de formatos ) a un costo adicional.

Si son solo características puntuales sin atributos, consideraría analizar el XML en algo que pueda importar fácilmente como un CSV; solo está buscando los datos entre las etiquetas de coordenadas.


9

Otra opción es usar XToolsPro, una extensión de terceros que funciona en ArcGIS. Entre sus muchas útiles herramientas de conversión está la función "Importar datos desde KML".




8

QGIS se ha vuelto mucho más robusto para la conversión entre kml y shp. Simplemente use Guardar como del menú de clic derecho en la capa. O abra cada uno de esos tipos de archivo desde el menú Agregar nueva capa, asegúrese de cambiar el tipo de archivo en el cuadro de diálogo.


6

También puede mirar FME desde Safe Software http://www.safe.com

Hay una versión de prueba de 14 días disponible. FME le permite incluso asignar los atributos de su archivo KML al formato ESRI SHP durante el proceso de conversión / migración de datos, además de la capacidad de filtrar los archivos de puntos KML en función de ciertos atributos o extensiones espaciales.

También existe la opción de realizar una conversión por lotes cuando tiene un gran conjunto de archivos KML de sus usuarios.

~ SRG


6

use OGR para el control de la línea de comandos, Google Earth Pro le dará una forma gráfica de convertir, al igual que una variedad de otras aplicaciones




4

Si tiene la extensión de interoperabilidad, simplemente cargue ese KML directamente en ArcMap y exporte a shp.

Aunque la respuesta opuesta a su Q, en caso de que alguien haya venido aquí para hacer lo contrario, creo que este script es perfecto para ir de SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273




3

Algunas opciones que no vi en ninguna de las respuestas para agregar recursos adicionales para convertir KML a SHP serían las siguientes:

MyGeodata Converter

El convertidor en línea del formato Keyhole Markup Language al formato ESRI Shapefile (KML a SHP) es una herramienta rápida y fácil de usar para conversiones individuales y por lotes. El convertidor también es compatible con más de otros 90 formatos vectoriales y ráster GIS / CAD y más de 3,000 sistemas de referencia de coordenadas.

Free Geography Tools cubre y proporciona un tutorial de la herramienta de software Zonums


2

Una ayuda buena y fácil que podría producir resultados más limpios es convertir KML a GPX primero (hay varios software de código abierto que pueden hacerlo) y abrir los datos respectivos (GPX tiene 5 clases diferentes de información: Waypoints, Trackpoints, Puntos de ruta, pistas y rutas) usando el ogr2ogr de GDAL / OGR en QGIS y guárdelo directamente en formato de archivo .SHP.

También es bastante fácil usar el proceso por lotes para una gran cantidad de datos (usando Merge Vector Layers de SAGA, por ejemplo) para producir un archivo de forma única si lo desea y también puede borrar los atributos vacíos antes del "Guardar como SHP" final.

Preste especial atención al sistema de codificación si aparecen caracteres extraños en su resultado final ... puede elegir el adecuado en el momento en que agrega nuevos datos vectoriales a su mapa.


0

Llego tarde a la fiesta, pero aquí hay algunas formas adicionales:

  1. Google Fusion Tables , puede convertir información de puntos KML a WGS84 X e Y en formato .csv, que luego puede usar en su software de análisis GIS preferido.

  2. Usando el paquete rgdal en R .:

    install.packages("rgdal")
    library(rgdal) #load package
    kmlfile=readOGR("yourkmlfilehere.kml") #load KML
    writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape

0

Otro consejo: si desea convertir varios KML en una carpeta / directorio a la vez para dar forma al archivo usando la línea de comando, abra cmd en la carpeta y escriba esto:

para / R% f en (* .kml) do ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f"

Nota: utilizará el nombre del archivo KML como nombre del archivo de forma, así que asegúrese de que sus archivos KML tengan los formatos de nombres adecuados para los archivos de forma. El archivo de forma se creará en el mismo directorio que el kml correspondiente. Los archivos KML en los subdirectorios también se convertirán en archivos de forma.


-1

Para convertir KML a formato de archivo Shp, puede usar la utilidad ogr2ogr. En primer lugar, debe instalarlo en el sistema. Si ya lo instaló, use el tipo ogr2ogr en el terminal.

Ahora para la conversión, el comando dado debe ejecutarse, es decir

--- ogr2ogr -f 'ESRI Shapefile' Output_sahpefile.shp Input_KML.kml

Así es como ogr2ogr puede realizar conversiones y si no obtiene resultados, puede convertir Kml a shp mediante el método de codificación.

Esto también se puede hacer usando PHP. Puede crear una función que defina este comando como cadena y puede asignar esta cadena en el método shell_exec () para que se ejecute. Shell_exec () realmente ejecuta el comando y devuelve el resultado como una cadena.

public function KML_to_shp($KMLfilepath,$output){
 $query="ogr2ogr -f 'ESRI Shapefile'  $output.gml  $KMLfilepath";
 shell_exec($query);
 }

Aquí hay una publicación para convertir kml a shp usando la herramienta de línea de comandos ogr2ogr o usando el código php. Mientras que si usa la herramienta QGIS, puede consultar una de mis publicaciones de blog aquí kml para convertir shp usando QGIS o continuar usando esta publicación.


1
¿está asociado con el sitio web que ofrece como respuesta? Si es así, indícalo en tus publicaciones.
LaughU

-2

En ArcGIS simplemente busque "kml TO LAYER" o "Layer to KML". esta herramienta te ayudará a convertir en shapefile y KML


Creo que este enfoque ya fue mencionado anteriormente por otro autor. Alternativamente, puede sugerir algo nuevo o mejorado.
Taras