Cara konversi KML ke shapefile: QGIS, ogr2ogr, atau online
Untuk mengonversi KML ke shapefile, buka KML di QGIS, klik kanan layer, pilih Export > Save Features As, lalu pilih ESRI Shapefile. Di command line, jalankan ogr2ogr -f "ESRI Shapefile" dengan satu jenis geometri per output. Atau letakkan file .kml ke konverter KML ke Shapefile FileReshape, yang berjalan di browser tanpa mengunggah file, memisahkan titik, garis, dan poligon, serta menambahkan file .prj dan .cpg.
Apa yang berubah saat KML menjadi shapefile
KML (format yang dipakai Google Earth dan Google My Maps) dan shapefile menyimpan data geografis dengan cara yang sangat berbeda, dan setiap metode konversi harus menghadapi perbedaan yang sama. Mengetahuinya sejak awal akan menghindarkan Anda dari kejutan pada hasilnya.
Satu jenis geometri per file. File KML bisa mencampur titik, garis, dan poligon dalam satu folder. Shapefile hanya bisa menyimpan satu jenis geometri, jadi KML campuran harus menjadi beberapa shapefile, satu per jenis.
Nama field pendek. Tabel atribut .dbf mengizinkan nama field hingga 10 karakter, sehingga Description menjadi Descriptio. Nilai teks yang lebih panjang dari 254 karakter, seperti deskripsi HTML yang panjang, akan terpotong.
Tanpa gaya tampilan. Warna, ketebalan garis, dan ikon adalah bagian dari KML tetapi bukan bagian dari shapefile, sehingga hilang. Jika tampilannya penting, Anda harus membuatnya ulang di program GIS Anda.
Sistem koordinat. KML selalu memakai bujur dan lintang WGS84. Shapefile bisa tetap dalam WGS84 dengan file .prj yang menyatakannya, atau diproyeksikan ulang ke sistem seperti zona UTM jika Anda memerlukan jarak dan luas dalam meter. Shapefile juga membutuhkan bagian .shp, .shx, dan .dbf yang tetap disimpan bersama, dan file .cpg memberi tahu program tentang pengodean teks.
Konversi KML ke shapefile di QGIS
QGIS gratis dan open source, dan membaca KML lewat GDAL. Ini pilihan terbaik jika Anda juga ingin memeriksa, mengedit, atau mengubah gaya data, atau memproyeksikannya ulang. Jika KML memiliki beberapa folder atau jenis geometri campuran, QGIS mungkin menampilkan dialog yang mendaftarkannya sebagai layer terpisah; tambahkan yang Anda perlukan dan ekspor masing-masing.
Di dialog Save Vector Layer, Anda juga bisa mengatur sistem koordinat output dan pengodean. Pilih UTF-8 agar nama dengan huruf seperti é, ø, atau ü tetap utuh. Ulangi ekspor untuk setiap layer jika KML berisi titik, garis, dan poligon.
- Buka QGIS dan seret file .kml ke peta, atau gunakan Layer > Add Layer > Add Vector Layer.
- Klik kanan layer di panel Layers dan pilih Export > Save Features As.
- Atur Format ke ESRI Shapefile, pilih nama file dan, jika perlu, CRS yang berbeda.
- Klik OK dan periksa layer shapefile yang baru beserta tabel atributnya.
Konversi KML ke shapefile dengan ogr2ogr
ogr2ogr adalah konverter command line dari GDAL. Gunakan untuk file besar, pekerjaan batch pada banyak file KML, dan dalam skrip. Mulailah dengan ogrinfo untuk melihat layer apa saja yang ada di KML; dengan driver KML dari GDAL, setiap folder KML biasanya dibaca sebagai layer tersendiri.
Karena shapefile hanya menyimpan satu jenis geometri, tulis setiap jenis ke shapefile-nya sendiri. Field khusus OGR SQL bernama OGR_GEOMETRY memungkinkan Anda memfilter berdasarkan jenis dengan -where atau -sql. Opsi -nlt menentukan jenis geometri layer output, dan -nlt PROMOTE_TO_MULTI berguna saat sebuah layer mencampur garis atau poligon bagian tunggal dan multi-bagian. Jika Anda melewatkan pemfilteran, shapefile akan mengikuti jenis fitur pertama, dan fitur dengan jenis lain akan menimbulkan error.
Apakah field ExtendedData menjadi kolom bergantung pada driver KML di build GDAL Anda. Driver LIBKML membacanya; periksa driver yang Anda miliki dengan ogrinfo --formats. Network link, yang menunjuk ke KML di server web, sebaiknya diunduh dan disimpan dulu sebagai KML lokal.
# Daftar layer (folder) beserta jenis geometrinya
ogrinfo -so -al places.kml
# Satu shapefile per jenis geometri
ogr2ogr -f "ESRI Shapefile" places_points.shp places.kml -where "OGR_GEOMETRY='POINT' OR OGR_GEOMETRY='MULTIPOINT'" -explodecollections -nlt POINT -lco ENCODING=UTF-8
ogr2ogr -f "ESRI Shapefile" places_lines.shp places.kml -where "OGR_GEOMETRY='LINESTRING' OR OGR_GEOMETRY='MULTILINESTRING'" -nlt PROMOTE_TO_MULTI -lco ENCODING=UTF-8
ogr2ogr -f "ESRI Shapefile" places_polygons.shp places.kml -where "OGR_GEOMETRY='POLYGON' OR OGR_GEOMETRY='MULTIPOLYGON'" -nlt PROMOTE_TO_MULTI -lco ENCODING=UTF-8
# Opsional: proyeksikan ulang ke UTM zona 48S, bukan tetap WGS84
ogr2ogr -f "ESRI Shapefile" -t_srs EPSG:32748 places_utm.shp places_points.shpKonversi KML ke shapefile online dengan FileReshape
Konversi KML ke Shapefile (SHP) dari FileReshape melakukan hal yang sama di browser Anda, tanpa perangkat lunak yang perlu dipasang. Konverter ini memakai GDAL yang dikompilasi untuk web, dan KML dibaca dari disk Anda sendiri tanpa diunggah, sehingga aman untuk data klien. Hasilnya berupa file .zip berisi file .shp, .shx, .dbf, .prj, dan .cpg untuk setiap shapefile.
Konverter menangani masalah yang umum untuk Anda. Titik, garis, dan poligon ditulis ke shapefile terpisah, misalnya Sights_points.shp dan Routes_lines.shp, dan setiap folder KML menjadi shapefile tersendiri yang dinamai sesuai folder tersebut. Nama field dipotong menjadi 10 karakter. Secara default output tetap dalam WGS84 dengan file .prj, dan Anda bisa memilih sistem lain seperti zona UTM. Ketinggian dipertahankan sebagai shapefile 3D. Tabel atribut ditulis sebagai UTF-8 dengan file .cpg yang sesuai.
Ketahui batasannya. Warna dan ikon tidak ikut terbawa. Nama dan deskripsi placemark dipertahankan, dan field tambahan yang tersimpan sebagai ExtendedData KML menjadi atribut, dipendekkan menjadi 10 karakter. Network link yang menunjuk ke data di web tidak diikuti; konverter memberi tahu berapa banyak yang dilewati. Untuk KMZ, ambil dulu KML-nya dengan Konversi KMZ ke KML. Batas ukurannya adalah memori browser Anda, dan file hingga sekitar 200 MB biasanya berfungsi.
- Buka Konversi KML ke Shapefile (SHP) dan letakkan file .kml Anda, atau klik untuk memilihnya.
- Jika perlu, pilih sistem koordinat untuk output, misalnya zona UTM.
- Klik Konversi ke Shapefile lalu unduh file .zip berisi shapefile, ekstrak, dan tambahkan file .shp ke GIS Anda.
Metode mana yang sebaiknya Anda pilih?
Gunakan konverter di browser untuk file sekali pakai ketika Anda hanya membutuhkan shapefile untuk dikirim atau dibuka di program lain. Gunakan QGIS jika Anda ingin memeriksa hasilnya di peta, mengedit atribut, atau membangun ulang gaya tampilan. Gunakan ogr2ogr untuk file yang sangat besar, untuk mengonversi banyak file sekaligus, atau untuk alur kerja otomatis. Jika penerima menerima GeoPackage, pertimbangkan format itu: tidak ada batas 10 karakter pada nama field dan bisa menampung beberapa layer dalam satu file.
Pertanyaan yang sering diajukan
Mengapa saya mendapat beberapa shapefile dari satu KML?
Shapefile hanya bisa menyimpan satu jenis geometri. Jika KML Anda mencampur titik, garis, dan poligon, atau memiliki beberapa folder, setiap jenis atau folder menjadi shapefile tersendiri agar tidak ada data yang hilang.
Apakah warna dan ikon Google Earth tetap ada?
Tidak. Shapefile tidak punya tempat untuk gaya tampilan, sehingga warna, ketebalan garis, dan ikon hilang pada semua metode. Atur ulang gaya layer di QGIS atau program GIS Anda.
Bisakah saya mengonversi file KMZ ke shapefile?
Bisa. KMZ adalah KML yang di-zip. QGIS dan ogr2ogr biasanya bisa membacanya langsung. Dengan FileReshape, gunakan dulu Konversi KMZ ke KML, lalu konversi KML tersebut ke shapefile.
Apakah KML saya diunggah saat dikonversi online dengan FileReshape?
Tidak. Konversi berjalan di browser Anda dan file tetap berada di komputer Anda.
Mengapa field Description menjadi Descriptio?
Nama field shapefile dibatasi 10 karakter oleh format .dbf, sehingga nama yang lebih panjang dipotong. Ganti nama field sebelum konversi, atau gunakan GeoPackage jika nama panjang penting bagi Anda.