Có phải là bình thường khi sử dụng loại hình học 'đa điểm' thay vì 'điểm' khi biết rằng tôi chỉ sử dụng nó để lưu trữ một điểm?
Làm thế nào tôi có thể chuyển đổi từ đa điểm sang điểm?
Có phải là bình thường khi sử dụng loại hình học 'đa điểm' thay vì 'điểm' khi biết rằng tôi chỉ sử dụng nó để lưu trữ một điểm?
Làm thế nào tôi có thể chuyển đổi từ đa điểm sang điểm?
Câu trả lời:
Để chuyển đổi "Đa điểm" thành "Điểm", bạn phải sử dụng ST_Dump , ví dụ:
SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
FROM MULTIPOINT_table;
Đối với câu hỏi sử dụng "Đa" hoặc hình học đơn, tôi sử dụng logic này:
Cách dễ nhất để trích xuất một điểm từ một điểm MULTIPOINT
là ST_GeometryN
:
SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)
Điều này tránh các vấn đề tiềm ẩn trong các tình huống có thể sử dụng chức năng trả về tập hợp.
Có một số tối ưu hóa quan trọng chỉ có sẵn để POINT
nhập hình học (đặc biệt là trong các phiên bản trước của PostGIS), vì vậy lưu trữ các điểm duy nhất là một cách làm POINT
tốt. A POINT
cũng sử dụng không gian ít hơn khoảng 25% so với a MULTIPOINT
.