Mengonversi Data Vektor GIS ke KML

Mano Marks, Tim Google Geo API
September 2009

Tujuan

Tutorial ini membahas dasar-dasar konversi data vektor GIS ke KML menggunakan library open source OGR. Meskipun library ini dapat digunakan dengan sebagian besar file GIS, tutorial ini akan berfokus pada cara bekerja dengan shapefile ESRI.

Pengantar

Data geografis tersedia dalam berbagai bentuk di web. KML adalah salah satu format file yang paling umum, tetapi banyak jenis file lainnya yang juga digunakan. Perusahaan besar, pemerintah, dan LSM menggunakan sistem informasi geografis untuk membuat peta, bersama dengan format file khusus. Aplikasi ini sering memerlukan pelatihan khusus, atau setidaknya sejumlah besar waktu untuk mempelajarinya. Biaya kepemilikan mungkin cukup mahal. Di sisi lain, perangkat ini sangat canggih dan menyediakan serangkaian alat pemetaan yang lengkap untuk mapper profesional.

Banyak entitas pemerintah merilis beberapa bagian data GIS mereka untuk penggunaan publik. Portal seperti Data.gov, Massachusetts Geographic Information System, dan DataSF mempermudah pengguna dalam menemukan data untuk komunitas mereka. Artikel ini menjelaskan cara mengonversi data vektor—yaitu data yang terdiri dari geometri sederhana seperti titik, garis, dan poligon—menjadi KML. Hal ini akan memberi Anda akses ke berbagai jenis data, termasuk:

  • Data parsel yang mewakili batas-batas bidang bangunan
  • Data insiden, seperti laporan kejahatan
  • Data batas, untuk batas kota, negara bagian, wilayah, provinsi, dll.
  • Data jalan, termasuk jalan yang direncanakan dan jalan yang ada
  • Izin konstruksi, menunjukkan di mana izin telah dikeluarkan
  • Data kesehatan, seperti menjelaskan lokasi terjadinya insiden wabah flu

Ada banyak aplikasi yang bagus untuk melakukan konversi data, seperti Google Earth Pro, shp2kml, KML2KML, Arc2Earth, dan banyak lagi. Artikel ini akan berfokus pada mengonversi data vektor ke KML untuk digunakan di Google Earth atau Google Maps, menggunakan utilitas Library Abstraksi Data Geospasial(GDAL) open source dari command line, dan mungkin menginspirasi Anda untuk menggabungkan library tersebut ke dalam aplikasi Anda sendiri.

Catatan tentang jenis file

Meskipun artikel ini akan memandu Anda melakukan konversi jika bentuk file ESRI ke KML, alat GDAL, khususnya OGR, dapat digunakan untuk mengonversi berbagai jenis file, termasuk database CSV, PostGRES/PostGIS, dan berbagai format lainnya. Sebagian besar format data utama yang akan Anda temui didukung. Jika menemukan format yang tidak didukung, Anda dapat menulis driver untuk OGR, karena ini adalah library open source.

Shapefile

Format shapefile populer ESRI adalah salah satu format data GIS yang paling umum. Meskipun secara teknis shapefile adalah file tunggal dengan ekstensi .shp, sedangkan .shp tidak dapat dibuka dengan sendirinya. File tersebut memerlukan file .dbf, dan .shx, dan ada berbagai file lain yang juga diperlukan untuk berbagai tujuan. Jadi, jika Anda melihat referensi ke shapefile, biasanya ini berarti koleksi file, biasanya dalam bentuk arsip zip yang menyimpannya untuk disimpan bersama, dan begitulah kami akan menggunakan istilah Shapefile untuk sisa artikel ini.

Shapefile berisi informasi dalam jumlah besar tentang geografi yang dideskripsikan. Mereka menjelaskan geometri yang sebenarnya, metadata tentang geometri, dan informasi tentang sistem referensi spasial yang digunakan, serta banyak aspek data lainnya. Untuk tujuan artikel ini, kami akan sangat memperhatikan geometri, metadata, dan sistem referensi spasial.

Geometris dan metadata adalah konsep yang mudah. Geometris adalah titik, garis, dan poligon, dan dapat dinyatakan dengan mudah dalam KML. Metadata adalah data tentang data, yang sering digunakan untuk tujuan pemfilteran atau kueri. Misalnya, baris yang mendeskripsikan jalan mungkin memiliki metadata tentang jenis jalan tersebut (jalan kota, jalan raya nasional, belokan, dll.), batas kecepatan, siapa yang mendanainya, ukurannya, dll.

Sistem referensi spasial (SRS) digunakan untuk mengidentifikasi sistem koordinat dan proyeksi yang digunakan untuk membuat data vektor. Dalam KML, gunakan garis lintang dan bujur dalam sistem koordinat WGS84. Namun, ada cara lain untuk mengidentifikasi koordinat di peta. Yang populer meliputi: Universal Transverse Mercator, British National Grid, dan sistem State Plane. Untuk mengonversi data ke KML, Anda mungkin perlu mengidentifikasi informasi tersebut. KML hanya mendukung WGS84. Biasanya, shapefile akan membawa informasi tersebut bersamanya, sering kali dalam file .prj, dan OGR dapat mendeteksinya dari sana. Namun, terkadang perlu mengidentifikasi SRS. Terkadang ini disediakan dalam bentuk tertentu oleh sumber data, baik di halaman tempat Anda mendownloadnya, atau dalam dokumen readme dengan download, atau beberapa format lainnya. Biasanya, ini sudah cukup. Referensi Spasial situs berisi informasi selengkapnya tentang SRS dan memiliki referensi yang dapat Anda gunakan untuk mencari sistem referensi individual.

Ogr2ogr

GDAL menyediakan kumpulan library yang andal untuk menangani data vektor. Secara khusus, ogr2ogr adalah utilitas canggih untuk konversi data. Banyak aplikasi, termasuk beberapa yang disebutkan di atas, menggabungkan GDAL/OGR.

Untuk memulai, download dan instal GDAL. Kemudian, Anda akan memerlukan shapefile. Untuk tujuan tutorial ini, coba gunakan salah satu dari DataSF. Contoh di bawah ini menggunakan shapefile realtor_neighborhoods, yang dapat diperoleh, setelah menyetujui lisensinya, di sini. Setelah Anda mendownload file, ekstrak file ke direktori yang akan Anda ingat. Buka command line, lalu buka direktori tempat Anda memasukkan data. Sekarang giliran bagian yang menyenangkan.

ogr2ogr dapat digunakan dari command line dengan sangat mudah. Berikut cara mengonversi realtor_neighborhoods dari shapefile ke KML:

ogr2ogr -f "KML" -where "NBRHOOD='Telegraph Hill'" realtor_neighborhoods.kml realtor_neighborhoods.shp

Berikut adalah uraian dari fungsi perintah tersebut:

  • ogr2ogr: Ini adalah perintah inti.
  • -f "KML: Ini menetapkan format output ke KML.
  • -where "NBRHOOD='Telegraph Hill'": Ini adalah klausul where opsional, seperti di SQL. Pada dasarnya, BigQuery memungkinkan Anda untuk membuat kueri data berdasarkan metadata. Ini berfungsi dengan shapefile dan jenis file lainnya yang mendukung kueri. Dalam hal ini, kueri untuk kolom NBRHOOD, dan hanya memilih fitur yang memiliki NBRHOOD dari Telegraph Hill. Jika parameter tersebut tidak aktif, ogr2ogr akan memberi Anda setiap poligon lingkungan.
  • realtor_neighborhoods.kml: Ini adalah nama file output. Nama file output adalah yang pertama.
  • realtor_neighborhoods.shp: Ini adalah nama file input. File .shp mewakili keseluruhan shapefile.

Itu saja, sangat sederhana. Perintah ini menulis file KML yang terlihat seperti ini:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document><Folder><name>realtor_neighborhoods</name>
    <Schema name="realtor_neighborhoods" id="realtor_neighborhoods">
      <SimpleField name="Name" type="string"></SimpleField>
      <SimpleField name="Description" type="string"></SimpleField>
      <SimpleField name="OBJECTID" type="float"></SimpleField>
      <SimpleField name="NBRHOOD" type="string"></SimpleField>
      <SimpleField name="SFAR_DISTR" type="string"></SimpleField>
    </Schema>
    <Placemark>
      <ExtendedData><SchemaData schemaUrl="#realtor_neighborhoods">
        <SimpleData name="OBJECTID">81</SimpleData>
        <SimpleData name="NBRHOOD">Telegraph Hill</SimpleData>
        <SimpleData name="SFAR_DISTR">District 8 - Northeast</SimpleData>
      </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>-122.41041847319012,37.805924016582715,0 -122.407203813674,37.806324902060979,0 -122.40667792852096,37.803710121958744,0 -122.40348255423899,37.804117462290641,0 -122.40237202127015,37.798540648764529,0 -122.40876046662795,37.797723222540775,0 -122.41041847319012,37.805924016582715,0</coordinates></LinearRing></outerBoundaryIs></Polygon>
      <Style><LineStyle><color>ff0000ff</color></LineStyle>  <PolyStyle><fill>0</fill></PolyStyle></Style>
    </Placemark>
  </Folder></Document></kml>

Anda dapat melihat bahwa metadata dari shapefile dipertahankan, di elemen Schema dan SimpleData. Untuk informasi selengkapnya tentang penggunaan ExtendedData dan pemeliharaan data khusus, lihat bagian Panduan Developer KML tentang Menambahkan Data Kustom.

Apa selanjutnya?

GDAL/OGR memberi Anda kekuatan yang sangat besar. Dalam implementasi yang paling sederhana, kini Anda dapat mengonversi semua data ke KML untuk digunakan di Google Earth, Maps, atau browser geografis lain yang mendukung KML. Bahkan, Anda dapat memasukkan library GDAL/OGR ke dalam aplikasi, sehingga Anda dapat mengotomatiskan konversi data GIS ke dalam KML, dan mengontrol output konversi tersebut. Coba gabungkan dengan libkml untuk mendapatkan kontrol yang lebih terprogram atas pembuatan KML Anda.