Если я использую postGIS, должен ли я хранить столбцы lat и long, если я уже храню столбец геометрии? - PullRequest
1 голос
/ 02 ноября 2019

Я использую postGIS, и мои клиенты отправят мне lat,lng для точек геолокации.

Я храню эти точки в моей базе данных как GEOMETRY в столбце geometry.

Теперь мне нужно, чтобы клиенты получали очки обратно, и мне интересно, имеет ли смысл хранить lat и lng в дополнение к geometry, чтобы каждый раз мне не приходилось использовать postgisфункция для вычисления точки из геометрии, особенно для списков объектов, имеющих точки.

1 Ответ

0 голосов
/ 05 ноября 2019

Ну, все зависит от того, что ваше приложение делает с координатами. Если вам не нужно выполнять какие-либо сложные операции с этими точками, достаточно иметь их в качестве числовых значений в отдельных столбцах - числовые индексы достаточно эффективны.

Но каковы преимущества использования типов данных geometry или geography?

  • Координаты основаны на определенных SRS, который может быть закодирован геометрическими значениями - предполагается WGS84, если информация опущена. В случае, если ваши клиенты используют необычные системы отсчета, невозможно узнать это, просто увидев два числовых значения. См. ST_SRID.

  • PostGIS предлагает действительно полезные функции ~ 1,3 тыс., Такие как ST_Distance или ST_DWithin и имеет эффективный spatial index.

  • Публикация геометрий с использованием приложений, таких как GeoServer, с использованием стандартов OGC, таких как WFS (Web Feature Services) или WMS (Web Map Service).

  • Простой импорт данных в ГИС, например, QGIS или ArcGIS.

Я бы сказал, что с использованием geometry или geography Типы данных почти всегда лучший выбор, но в случае, если все вышеупомянутые функции не имеют значения, можно использовать числовые значения. В вашем случае я бы придерживался типа данных geometry и предоставлял координаты x, y с использованием функций PostGIS, как вы делаете сейчас.

...