Нормально ли использовать тип геометрии «многоточечный» вместо «точечный», зная, что я использую его для хранения только одной точки?
Как я могу конвертировать из нескольких точек в точку?
Нормально ли использовать тип геометрии «многоточечный» вместо «точечный», зная, что я использую его для хранения только одной точки?
Как я могу конвертировать из нескольких точек в точку?
Ответы:
Чтобы преобразовать «Multipoint» в «Point», вы должны использовать ST_Dump , например:
SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
FROM MULTIPOINT_table;
В вопросе об использовании «Multi» или отдельных геометрий я использую эту логику:
Самый простой способ извлечь точку из одной точки MULTIPOINT
является ST_GeometryN
:
SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)
Это позволяет избежать потенциальных проблем в ситуациях, когда функция, возвращающая множество, не может быть использована.
Существуют некоторые важные оптимизации, которые доступны только для POINT
геометрии типов (особенно в более ранних версиях PostGIS), поэтому хранение отдельных точек POINT
является хорошей практикой. A POINT
также использует примерно на 25% меньше места, чем a MULTIPOINT
.