No PostGIS, a geometria é preferida à geografia (modelo de terra redonda) porque os cálculos são muito mais simples e, portanto, mais rápidos. Ele também possui MUITAS funções mais disponíveis, mas é menos preciso em distâncias muito longas.
Importe seu CSV para campos latinos longos para DECIMAL(10,6)
colunas. 6 dígitos tem 10 cm de precisão, deve ser suficiente para a maioria dos casos de uso.
Em seguida, transmita seus dados importados
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;
Verifique se o SRID não é zero!
SELECT * FROM public.geometry_columns WHERE f_table_name = 'target_table';
Valide a ordem do seu parâmetro long lat usando um visualizador WKT e ST_AsEWKT(target_table.geom)
.
Em seguida, indexe-o para obter o melhor desempenho
CREATE INDEX idx_target_table_geom_gist
ON target_table USING gist(geom);