Konvensi penamaan kolom geometri - 'geom' atau 'the_geom'?

22

Saya memulai proyek PostGIS pertama saya, dan di berbagai buku dan tutorial saya telah melihat kolom geometri diberi label 'geom' atau 'the_geom'. Apakah yang satu lebih konvensional daripada yang lain?

Selain itu, adakah alasan yang baik untuk menggunakan 'geom' / 'the_geom' alih-alih nama yang lebih deskriptif untuk kolom geometri? (Misalnya 'centre_point' untuk titik pusat fitur.) Kami tidak memberi label pada kolom db konvensional 'the_int' atau 'the_string', jadi mengapa memberi label pada kolom geometri dengan cara ini?

Nick
sumber

Jawaban:

17

Pada PostGIS versi 2.0, "geom" adalah nama kolom umum. (Setidaknya saya melihatnya dokumentasi, dll.) Sebelum itu adalah "the_geom", dan saya hanya bisa berspekulasi mengapa.

Anda dapat menggunakan keduanya dengan aman, tetapi saya senang menggunakan "geom" di PostGIS dan SpatiaLite.

Sunting: Karena saya benar-benar melewatkan bagian kedua dari pertanyaan.
Secara umum, nama umum mudah digunakan karena biasanya perangkat lunak SIG mengharuskan geometri dalam tabel dibatasi ke tipe spesifik tunggal, SRID, dll. Oleh karena itu, nama tabel cenderung lebih deskriptif daripada nama kolom geometri. Misalnya, Anda akan menemukan tabel dengan nama "school_zone_polygons", "school_zone_centroids" masing-masing dengan kolom "geom"; bukan tabel "school_zones" dengan kolom "geom_polygon", "geom_centroid".

Memiliki nama umum berarti Anda tidak perlu memeriksa skema setiap kali Anda ingin referensi kolom geometri.

Scro
sumber
2
Adalah umum dalam pemrograman berorientasi objek untuk memberi nama objek tingkat atas dengan menambahkan sebuah artikel. Ini membedakan 'the_chair' dari instance 'chair' yang lebih baru. Tetapi PostGIS tidak benar-benar berfungsi seperti itu, dan beralih ke 'geom' yang sederhana mungkin membuat implementasi lintas platform lebih mudah.
L_Holcombe
Ya, saya selalu menebak bahwa itu untuk mencegah tabrakan (kemungkinan masa depan) dengan kata yang dipesan. Tidak ada yang suka mengetikkan tanda kutip ganda.
Scro
1
Terima kasih Scro untuk klarifikasi. Meskipun dalam contoh di mana Anda memiliki beberapa kolom geometri dalam sebuah tabel (bukan yang saya rencanakan), sampel tandingan Anda tampaknya merupakan konvensi yang ideal. Yaitu tabel "school_zones" dengan "geom_polygon", "geom_centroid" dll.
Nick
6

Salah satu alasan potensial mengapa "geom" atau "the_geom" dipilih sebagai nama generik untuk bidang "bentuk" adalah karena Anda sebenarnya dapat menyimpan beberapa jenis geometri (titik, garis, poli, dll.) Di satu bidang "geom" di meja yang sama. Anda bahkan dapat melihat kembali ke tahun 2005 ketika hal ini dibahas pada daftar email PostGIS.

Misalnya, Anda bisa menyimpan semua rumah, jalan, dan batas wilayah di bidang "geom" yang sama di satu meja Anda. Jelas ada alasan mengapa Anda dapat memilih untuk melakukan sebaliknya, tetapi ini bisa mewakili alasan mengapa nama kolom "geom" generik digunakan.

Mudah-mudahan beberapa pengguna lama PostGIS akan berpadu dengan rincian lebih lanjut tentang mengapa "geom" sebenarnya dipilih.

Ryan Dalton
sumber
1

Saat menggunakan api Geoserver REST dalam menerbitkan tabel PostGis yang ada, perintah REST akan gagal jika kolom geometri tidak bernama "geom".

Angelo Arboleda
sumber
2
Saya cukup yakin bahwa perilaku ini adalah bug dengan Geoserver, dan setelah diselesaikan, seharusnya tidak lagi menjadi pertimbangan
Devdatta Tengshe