Đa điểm so với PostGIS


12

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ó một câu trả lời hay giải thích cách kiểm tra hình học đa phần và chuyển đổi các loại cột từ hình học đa dạng sang hình học đơn tại: gis.stackexchange.com/questions/28835/iêu
John

Câu trả lời:


16

Để 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:

  • nếu mỗi hình học có các thuộc tính khác nhau -> Đơn
  • nếu một nhóm hình học có cùng thuộc tính -> "Đa"

9

Cách dễ nhất để trích xuất một điểm từ một điểm MULTIPOINTST_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 để POINTnhậ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 POINTtốt. A POINTcũng sử dụng không gian ít hơn khoảng 25% so với a MULTIPOINT.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.