У PostGIS геометрія віддається перевазі географії (круглоземна модель), оскільки обчислення набагато простіші, тому швидші. Він також має багато доступних функцій, але менш точний на дуже великих відстанях.
Імпортуйте свій CSV у довгі лати поля до DECIMAL(10,6)
стовпців. 6 цифр - це 10 см точності, має бути достатньо для більшості випадків використання.
Потім передайте імпортовані дані
SELECT
--ST_SetSRID(ST_Point(long, lat),4326) geom -- the wrong way because SRID not set in geometry_columns table
ST_Point(long, lat)::geometry(Geometry, 4326) geom
INTO target_table
FROM source_table;
Перевірте, що SRID не дорівнює нулю!
SELECT * FROM public.geometry_columns WHERE f_table_name = 'target_table';
Перевірте порядок довгого параметра lat за допомогою переглядача WKT і ST_AsEWKT(target_table.geom)
.
Потім індексуйте його для найкращої продуктивності
CREATE INDEX idx_target_table_geom_gist
ON target_table USING gist(geom);