Konwertujesz pomiędzy KML a formatem plików shapefile (SHP)?

97

Moi użytkownicy przesyłają mi dane punktowe, które zostały zdigitalizowane za pomocą Google Earth.

Jak przekonwertować ich KML na plik kształtu?

TroutSlayer
źródło

Odpowiedzi:

129

Korzystanie z open source ogr2ogrz GDAL / OGR :

ogr2ogr -f 'ESRI Shapefile' output.shp input.kml
fmark
źródło
20
... i po prostu uprzedzić kolejne pytanie naturalną, to działa w drugą stronę: ogr2ogr -f KML output.kml input.shp
Glennon
8
Jeśli wolisz korzystać z narzędzi opartych na GUI, QGIS może działać jako interfejs użytkownika dla ogr2ogr.
podmrok
1
szkoda, że ​​nie ma strony internetowej GDAL / OGR podpowiedź peeps
Pure.Krome
1
@mattwilkie Myślę, że miał na myśli coś takiego jak Zamzar.com. Usługa konwersji online.
RK
1
Musiałem użyć podwójnych cudzysłowów dla argumentu „ESRI Shapefile”.
MatthewD
30

ArcGIS 10 ma narzędzie GP o nazwie KML To Layer, które konwertuje KML na klasę elementów. Wyszukaj KML za pomocą nowego wyszukiwania. Użyłem tego, aby pobrać wyciek ropy z kml kanałów z Google i przekonwertować je na SHP.

KML To Layer może jedynie utworzyć klasę obiektów geobazy, więc po konwersji klasy do pliku kształtu musi następować krok Klasa elementów do Klasa elementów.

jiriteach
źródło
2
Wspomniane tutaj narzędzie wydaje się być KML na warstwę, ale może jedynie utworzyć klasę obiektów geobaz, po której należy wykonać krok Klasa klasy do Klasa cechy, aby przekształcić ją w plik kształtu.
PolyGeo
19

Użyj ogr2ogr, ale jeśli nie interesuje Cię wiersz poleceń, spróbuj ogr2gui - naprawdę prosty interfejs dla ogr2ogr.

om_henners
źródło
10

Aby korzystać z danych przestrzennych opublikowanych jako plik KML lub KMZ w ArcGIS, musisz najpierw przekonwertować KML na klasę obiektów (plik kształtów). University of Connecticut opublikował skrypt do tworzenia plików kształtów z KML o nazwie KML_to_Shp.tbx. Działa całkiem dobrze i można go używać z ArcToolbox. Ponieważ KML będzie (powinien) zawsze mieć współrzędne geograficzne (WGS84), w końcu będziesz chciał je przekształcić w UTM Zone 15N NAD83 ...

Podobnie jak w przypadku wszystkich nowych narzędzi, zapoznaj się z dokumentacją przed użyciem. Można to znaleźć na stronie internetowej UCONN Center for Land Use Education and Research. Po dodaniu go do zestawu narzędzi i zrozumieniu jego ograniczeń, narzędzie jest bardzo proste w użyciu.

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

TroutSlayer
źródło
3
Nie zawsze chcesz UTM Zone 15N NAD83, potrzebujesz właściwej strefy dla danych. Możesz także projektować za pomocą WGS84 (tzn. WGS84 nie oznacza latlonu)
Vinko Vrsalovic
10

Kolejnym produktem komercyjnym, o którym warto wspomnieć, jest Global Mapper . Obejmuje to kategorię widoku, konwersji, ponownego wyświetlania prawie wszystkich danych geograficznych, jakie możesz sobie wyobrazić. Bardzo często używam darmowej wersji w klasie, którą uczę i prawie wszyscy odchodzą, komentując, jak to jest szwajcarski scyzoryk narzędzi GIS (chociaż darmowa wersja nie wykonuje tłumaczeń, udostępnia wszystkie menu i opcje). Cóż, warte mojego kosztu.

Dennis
źródło
10

Kilka innych opcji oprócz innych odpowiedzi ...

Aplikacja fdo2fdo firmy SL-King , która korzysta z bibliotek FDO typu open source, umożliwia wykonywanie tłumaczeń KML na SHP i odwrotnie. Zawiera zarówno GUI (które wyrażają tłumaczenia format-to-format, jak i bardziej dostosowane tłumaczenia mapowania schematu), a także narzędzie wiersza poleceń.

W przypadku odpowiednich aplikacji FME Safe Software zapewnia niesamowitą kontrolę nad sposobem mapowania informacji o źródle do miejsca docelowego. Jeśli masz ArcGIS, możesz uzyskać do niego dostęp za pośrednictwem rozszerzenia Interoperacyjności danych ( lista formatów ) za dodatkową opłatą.

Jeśli są to tylko cechy punktowe bez atrybutów, rozważę parsowanie XML na coś, co można łatwo zaimportować, np. CSV; po prostu szukasz danych między znacznikami współrzędnych.

JasonBirch
źródło
9

Inną opcją jest użycie XToolsPro, rozszerzenia innej firmy, które działa w ArcGIS. Wśród wielu przydatnych narzędzi do konwersji jest funkcja „Importuj dane z KML”.

Pure.Krome
źródło
8

Istnieje również kilka innych produktów komercyjnych. Przychodzi mi na myśl Arc2Earth. Ma całkiem dobrą integrację z ArcGIS Desktop. http://www.arc2earth.com

Jason
źródło
8

QGIS stał się znacznie bardziej odporny na konwersję między kml a shp. Wystarczy użyć Zapisz jako z menu po kliknięciu prawym przyciskiem myszy na warstwie. Lub otwórz każdy z tych typów plików z menu Dodaj nową warstwę, pamiętaj o zmianie typu pliku w oknie dialogowym.

Willy
źródło
6

Możesz także spojrzeć na FME z Safe Software http://www.safe.com

Dostępna jest 14-dniowa wersja próbna. FME pozwala nawet mapować atrybuty z pliku KML do formatu ESRI SHP podczas konwersji / migracji danych, oprócz możliwości filtrowania plików punktów KML w oparciu o określone atrybuty lub zakresy przestrzenne.

Istnieje również opcja wykonania konwersji wsadowej, gdy masz duży zestaw plików KML od użytkowników.

~ SRG

SRG
źródło
6

używaj OGR do sterowania wierszem poleceń, Google Earth Pro daje graficzny sposób konwersji, podobnie jak wiele innych aplikacji


źródło
4

Jeśli masz rozszerzenie interop, po prostu załaduj ten plik KML bezpośrednio do ArcMap i wyeksportuj do shp.

Chociaż odpowiedź odwrotna do twojego Q, na wypadek, gdyby ktoś przyszedł tu zrobić odwrotnie, uważam ten skrypt za idealny do przejścia z SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273

Szymon
źródło
3

Oto kilka opcji, których nie widziałem w żadnej z odpowiedzi, aby dodać dodatkowe zasoby do konwersji KML na SHP:

Konwerter MyGeodata

Internetowy konwerter formatu Keyhole Markup Language na format ESRI Shapefile (KML do SHP) jest szybkim i łatwym w użyciu narzędziem do konwersji indywidualnych i wsadowych. Konwerter obsługuje również ponad 90 innych formatów wektorowych i rastrowych GIS / CAD oraz ponad 3 000 układów odniesienia za pomocą współrzędnych.

Bezpłatne narzędzia geograficzne obejmują i udostępnia samouczek narzędzia Zonums Software

whyzar
źródło
2

Dobrą i łatwą pomocą, która może dać bardziej czyste wyniki, jest najpierw konwersja KML do GPX (istnieje kilka programów typu open source, które to potrafią) i otwarcie odpowiednich danych (GPX ma 5 różnych klas informacji: Punkty, Punkty trasy, Punkty trasy, trasy i trasy) za pomocą ogr2ogr z GDAL / OGR w QGIS i zapisz go bezpośrednio w formacie pliku .SHP.

Bardzo łatwo jest również użyć procesu wsadowego dla dużej ilości danych (na przykład używając Scal warstwy wektorowe z SAGA), aby w razie potrzeby utworzyć plik z jednym kształtem, a także wyczyścić puste atrybuty przed końcowym „Zapisz jako SHP”.

Zwróć szczególną uwagę na system kodyfikacji, jeśli na końcowym wyniku pojawią się dziwne znaki ... możesz wybrać odpowiedni w momencie dodawania nowych danych wektorowych do mapy.

Ricardo M. Nogueira Mendes
źródło
0

Jestem spóźniony na przyjęcie, ale oto kilka dodatkowych sposobów:

  1. Google Fusion Tables , może konwertować informacje o punktach KML na WGS84 X i Y w formacie .csv, które można następnie wykorzystać w preferowanym oprogramowaniu do analizy GIS.

  2. Korzystanie z pakietu rgdal w R .:

    install.packages("rgdal")
    library(rgdal) #load package
    kmlfile=readOGR("yourkmlfilehere.kml") #load KML
    writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape
Richard N. Belcher
źródło
0

Kolejna wskazówka: jeśli chcesz przekonwertować wiele plików KML jednocześnie w folderze / katalogu na plik kształtu za pomocą wiersza polecenia, otwórz cmd w folderze i wpisz:

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

Uwaga: użyje nazwy KML jako nazwy pliku shapefile, więc upewnij się, że twoje KML mają odpowiednie formaty nazewnictwa dla plików shapefile. Plik shapefile zostanie utworzony w tym samym katalogu, co odpowiedni kml. Pliki KML w podkatalogach również zostaną przekonwertowane na pliki kształtów.

Ifeoma Collins
źródło
-1

Do konwersji pliku KML do formatu Shp można użyć narzędzia ogr2ogr. Najpierw musisz zainstalować go w systemie, jeśli już go zainstalowałeś, wpisz typ ogr2ogr w terminalu.

Teraz do konwersji dane polecenie musi zostać wykonane tj

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

W ten sposób ogr2ogr może dokonywać konwersji, a jeśli nie otrzymujesz wyników, możesz przekonwertować Kml na shp metodą kodowania.

można to również zrobić za pomocą PHP. Możesz utworzyć funkcję, która zdefiniowała to polecenie jako ciąg i możesz podać ten ciąg w metodzie shell_exec () do wykonania. Shell_exec () faktycznie wykonuje polecenie i zwraca dane wyjściowe jako ciąg znaków.

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

tutaj jest post do konwersji kml na shp za pomocą narzędzia wier2 polecenia ogr2ogr lub kodu php. Chociaż jeśli używasz narzędzia QGIS, możesz przejrzeć jeden z moich postów na blogu tutaj kml, aby przekonwertować shp za pomocą QGIS lub kontynuować korzystanie z tego postu.

Himanshu Patel
źródło
1
czy jesteś powiązany z witryną, którą oferujesz jako odpowiedź? Jeśli tak, proszę podać to w swoich postach.
LaughU
-2

W ArcGIS wystarczy wyszukać „kml TO LAYER” lub „Layer to KML”. to narzędzie pomoże Ci przekonwertować na plik shapefile i KML

Naseem Ahmad
źródło
Myślę, że takie podejście zostało już wspomniane przez innego autora. Możesz też zasugerować coś nowego lub ulepszonego.
Taras