Multipoint vs point PostGIS

12

Apakah normal untuk menggunakan tipe geometri 'multipoint' daripada 'point' mengetahui bahwa saya menggunakannya untuk menyimpan hanya satu poin?

Bagaimana saya bisa mengonversi dari banyak titik ke titik?

Youssef
sumber
Ada jawaban bagus yang menjelaskan cara memeriksa geometri multi-bagian dan mengonversi tipe kolom dari multi-menjadi geometri di: gis.stackexchange.com/questions/28835/…
John

Jawaban:

16

Untuk mengonversi "Multipoint" ke "Point", Anda harus menggunakan ST_Dump , misalnya:

SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
  FROM MULTIPOINT_table;

Pada pertanyaan tentang penggunaan "Multi" atau geometri tunggal, saya menggunakan logika ini:

  • jika setiap geometri memiliki atribut yang berbeda -> Tunggal
  • jika sekelompok geometri memiliki atribut yang sama -> "Multi"
Taber
sumber
9

Cara termudah untuk mengekstraksi titik dari satu titik MULTIPOINTadalah ST_GeometryN:

SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)

Ini menghindari potensi masalah dalam situasi di mana fungsi set-return tidak dapat digunakan.

Ada beberapa optimasi penting yang tersedia hanya untuk POINTmengetik geometri (terutama di versi PostGIS sebelumnya), jadi menyimpan poin tunggal seperti POINTpraktik yang baik. A POINTjuga menggunakan sekitar 25% lebih sedikit ruang daripada a MULTIPOINT.

dbaston
sumber