Чи нормально використовувати тип геометрії "багатоточковий" замість "точки", знаючи, що я використовую його для зберігання лише однієї точки?
Як я можу конвертувати з багатоточок у точку?
Чи нормально використовувати тип геометрії "багатоточковий" замість "точки", знаючи, що я використовую його для зберігання лише однієї точки?
Як я можу конвертувати з багатоточок у точку?
Відповіді:
Щоб перетворити "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
.