Conversione tra formato KML e shapefile (SHP)?


Risposte:


129

Utilizzando l'open source ogr2ogrda GDAL / OGR :

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

Come indicato di seguito nel commento di Grego , potrebbe essere necessario utilizzare virgolette doppie anziché virgolette singole per l'opzione del formato di output (ad esempio "File di forma ESRI" per la riga di comando di Windows). Vedi anche il wiki di gdal .


20
... e solo per anticipare la prossima domanda naturale, funziona anche nell'altro modo: ogr2ogr -f KML output.kml input.shp
glennon

8
Se si preferisce utilizzare strumenti basati sulla GUI, QGIS può fungere da front-end per ogr2ogr.
underdark

1
vorrei che ci fosse un sito online GDAL / OGR suggerimento fa capolino suggerimento
Pure.Krome

1
@mattwilkie Penso che intendesse qualcosa come Zamzar.com. Un servizio di conversione online.
RK,

1
Ho dovuto usare le virgolette doppie per l'arg "ESRI Shapefile".
MatthewD,

30

ArcGIS 10 ha uno strumento GP chiamato KML To Layer che converte KML in una classe di caratteristiche. Cerca KML utilizzando la nuova ricerca. Ho usato questo per prelevare i feed kml di fuoriuscita di petrolio da Google e convertirli in SHP.

KML To Layer può creare solo una classe di caratteristiche geodatabase in modo che debba essere seguita da un passaggio Classe di caratteristica in Classe di caratteristica per convertirlo in un file di forma.


2
Lo strumento menzionato qui sembra essere KML a livello ma che può solo creare una classe di caratteristiche di geodatabase che deve essere seguita dal passaggio Classe di caratteristiche in Classe di caratteristiche per convertirlo in un file di forma.
PolyGeo

19

Usa ogr2ogr, ma se non sei interessato a una riga di comando, prova ogr2gui , un front-end davvero semplice per ogr2ogr.


10

Per utilizzare i dati spaziali pubblicati come file KML o KMZ in ArcGIS è necessario prima convertire il KML in una classe di feature (shapefile). L'Università del Connecticut ha pubblicato uno script per la creazione di shapefile da KML chiamato KML_to_Shp.tbx. Funziona abbastanza bene e puoi usarlo da ArcToolbox. Poiché KML sarà (dovrebbe) sempre in coordinate geografiche (WGS84), alla fine vorrai trasformarle in UTM Zone 15N NAD83 ...

Come per tutti i nuovi strumenti, consultare la documentazione prima dell'uso. Questo può essere trovato sul sito web del Centro per l'istruzione e la ricerca sull'uso del suolo della UCONN. Dopo averlo aggiunto alla casella degli strumenti e averne compreso i limiti, lo strumento è molto semplice da usare.

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


3
Non vuoi sempre UTM Zone 15N NAD83, vuoi la zona corretta per i dati. E puoi anche proiettare usando WGS84 (cioè WGS84 non significa latlon)
Vinko Vrsalovic


10

Un altro prodotto commerciale che merita di essere menzionato è Global Mapper . Questo rientra nella categoria di visualizzazione, conversione, riprogrammazione di quasi tutti i dati geografici che puoi immaginare. Uso pesantemente la versione gratuita in una classe a cui insegno e quasi tutti se ne vanno commentando come questo è il coltellino svizzero di strumenti GIS (anche se la versione gratuita non fa traduzioni, espone tutti i menu e le opzioni). Vale la pena il costo nella mia esperienza.


10

Associa più opzioni oltre alle altre risposte ...

L' applicazione fdo2fdo di SL-King , che utilizza le librerie FDO open source, consente di eseguire traduzioni da KML a SHP e viceversa. Include sia una GUI (che esprime traduzioni da formato a formato e traduzioni di mappatura dello schema più personalizzate) sia uno strumento da riga di comando.

Per le applicazioni properietary, FME di Safe Software ti offre un controllo straordinario su come mappare le informazioni di origine sulla destinazione. Se si dispone di ArcGIS, è possibile accedervi tramite l'estensione di interoperabilità dei dati ( elenco di formati ) a un costo aggiuntivo.

Se sono solo funzionalità punto senza attributi, prenderei in considerazione l'analisi dell'XML in qualcosa che puoi facilmente importare come un CSV; stai solo cercando i dati tra i tag delle coordinate.


9

Un'altra opzione è utilizzare XToolsPro, un'estensione di terze parti che funziona in ArcGIS. Tra i molti utili strumenti di conversione c'è una funzione "Importa dati da KML".




8

QGIS è diventato molto più robusto per la conversione tra kml e shp. Basta usare Salva con nome dal menu di scelta rapida sul livello. O apri ciascuno di questi tipi di file dal menu Aggiungi nuovo livello, assicurati di cambiare il tipo di file nella finestra di dialogo.


6

Puoi anche consultare FME da Safe Software http://www.safe.com

È disponibile una prova di 14 giorni. FME ti consente persino di mappare gli attributi dal tuo file KML al formato ESRI SHP durante il processo di conversione / migrazione dei dati oltre alla possibilità di filtrare i file di punti KML in base a determinati attributi o estensioni spaziali.

C'è anche la possibilità di eseguire la conversione batch quando hai un ampio set di file KML dai tuoi utenti.

~ SRG


6

usa OGR per il controllo da riga di comando, Google Earth Pro ti darà un modo grafico per convertire, così come una varietà di altre app




4

Se hai l'estensione di interoperabilità, carica quel KML direttamente in ArcMap ed esporta in shp.

Sebbene la risposta opposta alla tua Q, nel caso in cui qualcuno sia venuto qui per fare il viceversa, trovo questo script perfetto per passare da SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273




3

Alcune opzioni che non ho visto in nessuna delle risposte per aggiungere risorse aggiuntive per convertire KML in SHP sarebbero le seguenti:

MyGeodata Converter

Il convertitore online del formato Keyhole Markup Language in formato ESRI Shapefile (da KML a SHP) è uno strumento rapido e facile da usare per conversioni sia individuali che batch. Converter supporta inoltre oltre 90 altri formati GIS / CAD vettoriali e raster e oltre 3 000 sistemi di riferimento di coordinate.

Free Geography Tools copre e fornisce un tutorial dello strumento Zonums Software


2

Un valido e facile aiuto che potrebbe produrre risultati più chiari è convertire prima KML in GPX (ci sono diversi software open source che possono farlo) e aprire i rispettivi dati (GPX ha 5 diverse classi di informazioni: Waypoint, Trackpoint, Routepoints, Tracks and Route) usando ogr2ogr da GDAL / OGR in QGIS e salvarlo direttamente nel formato file .SHP.

È abbastanza facile anche usare il processo batch per grandi quantità di dati (usando ad esempio i livelli Merge Vector di SAGA) per produrre un singolo file di forma se lo si desidera e si possono anche cancellare gli attributi vuoti prima del "Save as SHP" finale.

Presta particolare attenzione al sistema di codificazione se compaiono strani caratteri sul tuo risultato finale ... puoi scegliere quello giusto nel momento in cui stai aggiungendo nuovi dati vettoriali alla tua mappa.


0

Sono in ritardo alla festa, ma qui ci sono alcuni modi in più:

  1. Google Fusion Tables , può convertire le informazioni sui punti KML in WGS84 X e Y in un formato .csv, che puoi quindi utilizzare nel tuo software di analisi GIS preferito.

  2. Utilizzo del pacchetto rgdal in 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

Un altro consiglio: se vuoi convertire più KML in una cartella / directory contemporaneamente in shapefile usando la riga di comando, apri cmd nella cartella e digita questo:

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

Nota: utilizzerà il nome del file KML come nome del file di forma, quindi assicurati che i tuoi file KML abbiano i formati di denominazione corretti per i file di forma. Lo shapefile verrà creato nella stessa directory del kml corrispondente. I file KML nelle sottodirectory verranno convertiti anche in shapefile.


-1

Per convertire il formato di file KML in Shp è possibile utilizzare l'utilità ogr2ogr. Innanzitutto è necessario installarlo nel sistema, se è già stato installato, utilizzare ogr2ogr nel terminale.

Ora per la conversione è necessario eseguire il comando dato, ad es

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

Ecco come le conversioni possono essere eseguite da ogr2ogr e se non si ottengono risultati è possibile convertire Kml in shp con il metodo di codifica.

questo può anche essere fatto usando PHP. È possibile creare una funzione che ha definito questo comando come stringa e può fornire questa stringa nel metodo shell_exec () da eseguire. Shell_exec () esegue effettivamente il comando e restituisce l'output come stringa.

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

ecco un post per convertire kml in shp usando lo strumento da riga di comando ogr2ogr o usando il codice php. Mentre se usi lo strumento QGIS, puoi guardare uno dei miei post sul blog qui per cambiare shp usando QGIS oppure continuare a usare questo post.


1
sei associato al sito web che stai offrendo come risposta? In tal caso, inseriscilo nei tuoi post.
Risate il

-2

In ArcGIS basta cercare "kml TO LAYER" o "Layer to KML". questo strumento ti aiuterà a convertire in shapefile e KML


Penso che questo approccio sia già stato menzionato in precedenza da un altro autore. In alternativa, puoi suggerire qualcosa di nuovo o migliorato.
Taras,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.