Tengo una pregunta simple sobre el cálculo de distancias en PostGIS.
Me gustaría obtener la distancia entre dos geometrías. Estoy usando este sid: 4269 en metros, lo que estoy haciendo ahora es esto: ST_Distance((a.geom,b.geom)) FROM ...
pero obtengo el resultado en grados. Creo que debería trabajar con la geografía, pero ¿cómo puedo convertir una geom a una geografía? Intenté con (a.geom :: geography) pero recibo un error.
¿Qué puedo hacer para obtener mi resultado en metros?
Gracias
postgis
coordinate-system
postgresql
distance
YassineGeoma
fuente
fuente
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Las unidades de SRID 4269 ( NAD 83 ) no son metros; esta es una proyección geodésica , es decir, las coordenadas son grados (coordenadas geográficas).
La respuesta de pacofvf le dará la distancia en metros, pero si realmente tenía sus coordenadas iniciales especificadas en metros, entonces debería usar un sistema de coordenadas proyectadas. Probablemente para América del Norte desee algo como el Sistema de coordenadas del plano estatal que tiene varias proyecciones diferentes según la región que desee asignar.
Sin embargo, sospecho que solo está usando valores de lat / lon, por lo que probablemente este segundo párrafo no sea relevante, solo use la
ST_Distance_Sphere
función como se indicó anteriormente.fuente