load file SHP(ESRI)

Kemarin malam ada permintaan untuk membuat pustaka yang dapat mengelola berkas data spasial dengan format SHP dari ESRI dengan menggunakan delphi. Berhubung belum pernah menggunakan format itu (yang pernah baru MIF dari MapInfo) untuk GIS. Akhirnya terpaksa pergi ke wotsit.org untuk mengunduh dokumentasi format berkas SHP dan googling untuk mendapatkan contoh berkas SHP. Setelah beberapa lama membaca dokumentasinya, ternyata format SHP itu cukup generik juga yah? Tadinya saya pikir format ini hanya untuk peta 2 dimensi saja. Ternyata format SHP juga menyediakan fasilitas untuk menyimpan data 3D (bahkan mungkin 4D berupa scalar field di ruang 3D).

Secara umum format SHP cukup sederhana yaitu Header utama berukuran tetap dan diikuti sejumlah chunk record berukuran varian (tergantung tipe bentuk). Secara umum tiap record dalam berkas SHP diasumsikan homogen, walau dimungkinkan juga untuk tidak homogen (dengan adanya field ShapeType di setiap recordnya). Yang (agak) merepotkan dari berkas SHP adalah adanya format penyimpanan BIG Endian dan Little Endian di dalam satu berkas tersebut. Berhubung Windows/I386 pada umumnya menggunakan format little endian maka perlu dimodifikasi sedikit untuk membaca dari stream (untungnya yang big endian formatnya integer bukan floating point jadinya tidak terlalu merepotkan).

Berhubung saya sedang malas untuk menjabarkan kodenya, saya unggah saja semuanya (library dan contoh pemakaian minus executable) di sini.

Wew, another quick coding. kira2 4 jam (kok kayaknya lama ya?😛 biarin ah). udah jam 4 pagi nih.. nunggu shubuh dulu deh baru tidur..

PS: ubah ekstensi .odt menjadi .zip

2 comments

  1. wildan · Desember 12, 2008

    wah, salam kenal🙂
    mau numpang tanya mas.. setelah kita berhasil dapetin Point itu, kan nilainya desimal panjang tuh, nah trus ngonverinya biar kita bisa dapet koordinat yang angkanya enak gimana?

  2. pebbie · Desember 12, 2008

    salam kenal juga. ^_^

    maksudnya koordinat yang enak itu gimana yah?😀 koordinat itu sendiri nantinya akan ditransformasi sesuai dengan current view, nanti untuk rasterisasinya tergantung kebutuhan. sudah pasti ada kuantisasi jadi diskret (rounding) untuk menyesuaikan dengan koordinat display.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s