Konversi antara format KML dan shapefile (SHP)?

Jawaban:

129

Menggunakan sumber terbuka ogr2ogrdari GDAL / OGR :

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

Seperti disebutkan dalam komentar grego di bawah ini , Anda mungkin perlu menggunakan tanda kutip ganda sebagai ganti tanda kutip tunggal untuk opsi format output (mis. "ESRI Shapefile" untuk baris perintah Windows). Lihat juga gdal wiki .

fmark
sumber
20
... dan hanya untuk mendahului pertanyaan alami berikutnya, ia bekerja dengan cara lain juga: ogr2ogr -f KML input.kml input.shp
glennon
8
Jika Anda lebih suka menggunakan alat berbasis GUI, QGIS dapat bertindak sebagai ujung depan untuk ogr2ogr.
underdark
1
berharap ada situs petunjuk petunjuk
Pure.Krome
1
@ mattwilkie Saya pikir dia berarti sesuatu seperti Zamzar.com. Layanan konversi online.
RK
1
Saya harus menggunakan tanda kutip ganda untuk arg "ESRI Shapefile".
MatthewD
30

ArcGIS 10 memiliki alat GP yang disebut KML To Layer yang mengubah KML ke kelas fitur. Cari KML menggunakan pencarian baru. Saya telah menggunakan ini untuk mengambil umpan tumpahan minyak kml dari Google dan mengubahnya menjadi SHP.

KML To Layer hanya dapat membuat kelas fitur geodatabase sehingga perlu diikuti oleh langkah Kelas Fitur ke Kelas Fitur untuk mengubahnya menjadi shapefile.

jiriteach
sumber
2
Alat yang disebutkan di sini tampaknya KML To Layer tetapi itu hanya bisa membuat kelas fitur geodatabase yang perlu diikuti oleh Kelas Fitur Untuk Fitur Kelas langkah untuk mengubahnya menjadi shapefile.
PolyGeo
19

Gunakan ogr2ogr, tetapi jika Anda tidak tertarik pada baris perintah, coba ogr2gui - ujung depan yang sangat sederhana untuk ogr2ogr.

om_henners
sumber
10

Untuk menggunakan data spasial yang diterbitkan sebagai file KML atau KMZ di ArcGIS, Anda harus terlebih dahulu mengonversi KML ke kelas fitur (shapefile). University of Connecticut memiliki naskah yang diterbitkan untuk membuat shapefile dari KML yang disebut KML_to_Shp.tbx. Ini berfungsi dengan baik dan Anda dapat menggunakannya dari ArcToolbox. Karena KML akan (harus) selalu berada dalam koordinat geografis (WGS84), Anda pada akhirnya ingin mengubahnya menjadi UTM Zone 15N NAD83 ...

Seperti semua alat baru, tinjau dokumentasi sebelum digunakan. Ini dapat ditemukan di situs web Pusat Pendidikan dan Penelitian Penggunaan Tanah UCONN. Setelah Anda menambahkannya ke kotak peralatan Anda dan memahami batasannya, alat ini sangat mudah digunakan.

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

TroutSlayer
sumber
3
Anda tidak selalu menginginkan UTM Zone 15N NAD83, Anda menginginkan zona yang tepat untuk data. Dan Anda juga dapat memproyeksikan menggunakan WGS84 (yaitu, WGS84 tidak berarti latlon)
Vinko Vrsalovic
10

Satu lagi produk komersial yang disebutkan adalah Global Mapper . Ini termasuk dalam kategori tampilan, konversi, proyeksi ulang hampir semua data geografis yang dapat Anda bayangkan. Saya menggunakan versi gratis dengan berat di kelas yang saya ajarkan dan hampir semua orang berjalan mengomentari bagaimana ini adalah pisau swiss dari alat GIS (meskipun versi gratis tidak melakukan terjemahan, itu memperlihatkan semua menu dan opsi). Sepadan dengan biaya dalam pengalaman saya.

Dennis
sumber
10

Pasangan lebih banyak pilihan selain jawaban lain ...

Aplikasi fdo2fdo SL-King , yang menggunakan pustaka FDO open source, memungkinkan Anda untuk melakukan KML ke SHP dan terjemahan sebaliknya. Ini mencakup GUI (yang mengekspresikan terjemahan format ke format dan lebih banyak terjemahan pemetaan skema yang disesuaikan) serta alat baris perintah.

Untuk aplikasi yang tepat, FME Perangkat Lunak Aman memberi Anda kendali luar biasa atas cara Anda memetakan informasi sumber ke tujuan. Jika Anda memiliki ArcGIS, Anda dapat mengaksesnya melalui Ekstensi Interoperabilitas Data ( daftar format ) dengan biaya tambahan.

Jika mereka hanya fitur titik tanpa atribut, saya akan mempertimbangkan parsing XML menjadi sesuatu yang dapat Anda impor dengan mudah seperti CSV; Anda hanya mencari data di antara tag koordinat.

JasonBirch
sumber
9

Opsi lain adalah menggunakan XToolsPro, ekstensi pihak ketiga yang berfungsi di ArcGIS. Di antara banyak alat konversi mereka yang berguna adalah fungsi "Impor Data dari KML".

Murni
sumber
8

Ada juga beberapa produk komersial lainnya. Arc2Earth datang ke pikiran. Ada integrasi yang cukup bagus dengan ArcGIS Desktop. http://www.arc2earth.com

Jason
sumber
8

QGIS telah menjadi jauh lebih kuat untuk konversi antara kml dan shp. Cukup gunakan Save As dari menu klik kanan pada layer. Atau buka masing-masing jenis file dari menu Add New Layer, pastikan untuk mengubah jenis file di kotak dialog.

Willy
sumber
6

Anda juga dapat melihat FME dari Safe Software http://www.safe.com

Tersedia uji coba 14 hari. FME memungkinkan Anda bahkan memetakan atribut dari file KML Anda ke format ESRI SHP selama proses konversi / migrasi data selain kemampuan untuk memfilter file titik KML berdasarkan atribut tertentu atau luasan spasial.

Ada juga opsi untuk melakukan konversi batch ketika Anda memiliki satu set besar file KML dari pengguna Anda.

~ SRG

SRG
sumber
6

menggunakan OGR untuk kontrol baris perintah, Google Earth Pro akan memberi Anda cara grafis untuk mengonversi, seperti juga berbagai aplikasi lainnya


sumber
5

ET GeoWizards juga memiliki opsi impor dari Google Earth, yang akan mengonversi file KML atau KMZ ke kelas fitur. > http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm

Jika Anda mencari opsi open source, saya melihat MapWindow baru saja diperbarui, dan ada beberapa plugin untuk mengkonversi ke dan dari KML dan shapefile.

Don Meltz
sumber
4

Jika Anda memiliki ekstensi interop, muat saja KML itu langsung ke ArcMap dan ekspor ke shp.

Meskipun jawaban yang berlawanan untuk Q Anda, jika seseorang datang ke sini untuk melakukan sebaliknya, saya menemukan skrip ini sempurna untuk pergi dari SHP -> KML http://arcscripts.esri.com/details.asp?dbid=14273

Simon
sumber
3

Beberapa opsi yang tidak saya lihat di salah satu respons untuk menambahkan sumber daya tambahan untuk mengonversi KML ke SHP adalah sebagai berikut:

Konverter MyGeodata

Konverter online format Keyhole Markup Language ke format ESRI Shapefile (KML ke SHP) adalah alat yang cepat dan mudah digunakan untuk konversi individu dan batch. Konverter juga mendukung lebih dari 90 vektor dan format GIS / CAD raster lainnya dan lebih dari 3.000 sistem referensi koordinat.

Alat Geografi Gratis mencakup dan menyediakan tutorial alat Zonums Software

Whyzar
sumber
2

Bantuan yang baik dan mudah yang mungkin menghasilkan hasil yang lebih bersih adalah untuk mengkonversi KML ke GPX terlebih dahulu (ada beberapa perangkat lunak open-source yang dapat melakukannya) dan membuka data masing-masing (GPX memiliki 5 kelas informasi yang berbeda: Waypoint, Trackpoints, Routepoint, Tracks dan Routes) menggunakan ogr2ogr dari GDAL / OGR di QGIS dan menyimpannya langsung dalam format file .SHP.

Sangat mudah juga untuk menggunakan proses batch untuk sejumlah besar data (menggunakan Merge Vector Layers dari SAGA misalnya) untuk menghasilkan file bentuk tunggal jika diinginkan dan Anda juga dapat menghapus atribut kosong sebelum "Simpan sebagai SHP" final.

Berikan perhatian khusus pada sistem kodifikasi jika karakter aneh muncul pada hasil akhir Anda ... Anda dapat memilih yang tepat pada saat Anda menambahkan data vektor baru ke peta Anda.

Ricardo M. Nogueira Mendes
sumber
0

Saya terlambat ke pesta tetapi di sini ada beberapa cara tambahan:

  1. Google Fusion Tables , dapat mengkonversi informasi poin KML ke WGS84 X dan Y dalam format .csv, yang kemudian dapat Anda gunakan dalam perangkat lunak analisis GIS pilihan Anda.

  2. Menggunakan paket rgdal di 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
sumber
0

Kiat lain: Jika Anda ingin mengonversi beberapa KML di folder / direktori sekaligus untuk membentuk menggunakan baris perintah, buka cmd di folder dan ketik ini di:

untuk / R% f dalam (* .kml) lakukan ogr2ogr -f "ESRI Shapefile" "% ~ dpnf.shp" "% f"

Catatan: Ini akan menggunakan nama KML sebagai nama shapefile jadi pastikan KML Anda memiliki format penamaan yang tepat untuk shapefile. Shapefile akan dibuat di direktori yang sama dengan kml yang sesuai. KML dalam sub-direktori juga akan dikonversi menjadi shapefile.

Ifeoma Collins
sumber
-1

Untuk mengonversi format file KML ke Shp, Anda dapat menggunakan utilitas ogr2ogr. Pertama Anda harus menginstalnya di sistem, Jika Anda sudah menginstalnya gunakan tipe ogr2ogr di terminal.

Sekarang untuk konversi perintah yang diberikan perlu dijalankan yaitu

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

Ini adalah bagaimana konversi dapat dilakukan oleh ogr2ogr dan jika Anda tidak mendapatkan hasil, Anda dapat mengkonversi Kml ke shp dengan metode pengkodean.

ini juga bisa dilakukan menggunakan PHP. Anda dapat membuat fungsi yang mendefinisikan perintah ini sebagai string dan dapat memberikan string ini dalam metode shell_exec () untuk dieksekusi. Shell_exec () sebenarnya menjalankan perintah dan mengembalikan output sebagai string.

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

di sini adalah posting untuk mengkonversi kml ke shp menggunakan alat baris perintah ogr2ogr atau menggunakan kode php. Sementara jika Anda menggunakan alat QGIS, Anda dapat melihat salah satu posting blog saya di sini kml untuk mengkonversi menggunakan QGIS atau terus menggunakan posting ini.

Himanshu Patel
sumber
1
apakah Anda terkait dengan situs web yang Anda tawarkan sebagai jawaban? Jika demikian, harap sebutkan di pos Anda.
LaughU
-2

Di ArcGIS cukup cari "kml TO LAYER" atau "Layer to KML". Alat ini akan membantu Anda mengonversi menjadi shapefile dan KML

Naseem Ahmad
sumber
Saya pikir pendekatan ini sudah disebutkan sebelumnya oleh penulis lain. Atau, Anda dapat menyarankan sesuatu yang baru atau ditingkatkan.
Taras