Eu tenho uma pergunta simples sobre o cálculo de distâncias no PostGIS.
Gostaria de obter a distância entre duas geometrias. Estou usando este sid: 4269 em metros, o que estou fazendo agora é o seguinte: ST_Distance((a.geom,b.geom)) FROM ...
mas estou obtendo resultado em graus. Eu acho que devo trabalhar com geografia, mas como posso converter um geom em uma geografia? Eu tentei com (a.geom :: geography), mas estou recebendo um erro.
O que posso fazer para obter meu resultado em metros?
Obrigado
postgis
coordinate-system
postgresql
distance
YassineGeoma
fonte
fonte
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
As unidades do SRID 4269 ( NAD 83 ) não são metros - esta é uma projeção geodésica , ou seja, as coordenadas são graus (coordenadas geográficas).
A resposta da pacofvf fornecerá a distância em metros, mas se você realmente tiver suas coordenadas iniciais especificadas em metros, deverá usar um sistema de coordenadas projetado. Provavelmente, na América do Norte, você deseja algo como o Sistema de Coordenadas do Plano Estadual, que possui várias projeções diferentes, dependendo da região que deseja mapear.
Eu suspeito, no entanto, que você esteja apenas usando valores lat / lon, portanto, provavelmente este segundo parágrafo não é relevante - basta usar a
ST_Distance_Sphere
função como acima.fonte