Kami memiliki fitur dari data survei yang berisi sebagian informasi 3d.
Contoh paling umum adalah 2D LineString yang mewakili jalan, yang berisi informasi ketinggian di titik-titik tertentu di mana ia disurvei. Contoh lain termasuk bentuk atap - A MultiLineString di mana beberapa titik utama memiliki elevasi yang ditetapkan dari rencana bangunan, tetapi tidak semua.
Menggunakan PostGIS, model data mana yang akan Anda rekomendasikan untuk menyimpan informasi semacam ini, agar tetap dapat diakses semaksimal mungkin, tanpa kehilangan atau menghasilkan informasi yang diinterpolasi?
Jawaban:
Anda bisa menyimpan nilai Z yang tidak terukur sebagai
'nan'::float8
. Sebagai contoh:Namun, ini bisa membuat Anda bermasalah karena nilai-nilai NaN tidak selalu diuji atau ditangani oleh pengembang perangkat lunak. Misalnya, PostGIS tidak dapat menguraikan versi WKT di atas
sumber
Buat kolom geometri sekunder dengan tiga dimensi untuk menahan titik-titik linestring yang memiliki nilai tiga-ordinat (rangkap tiga). Agar skema ini berfungsi, asumsi-asumsi berikut diasumsikan:
Geometri yang valid harus cukup untuk tidak memungkinkan titik duplikasi di linestrings dan tidak ada persimpangan sendiri. Jadi setiap koordinat akan berperilaku seperti kunci utama untuk mengidentifikasi titik dalam geometri sumber.
Ini juga benar dari model relasional:
Untuk kasus multilinestring hal-hal bisa menjadi sedikit lebih sulit karena sekarang harus memiliki tabel tambahan dengan kunci primer komposit:
Kunci utama di atas akan mencegah sisipan indeks geometri duplikat untuk geometri yang diberikan. Pemicu / pemeriksaan akan mencegah indeks tidak valid. Baris di sini juga harus dari sumber data yang diberikan kunci asing. Semua aturan sebelumnya berlaku.
Penyederhanaan akan menjadi penggunaan pada kolom tambahan tetapi tidak dari jenis geometri tetapi dari jenis nilai Z yang sama dinyatakan sebagai array.
sumber