15 votos

¿Cómo obtengo el valor del medidor de distancia entre dos geometrías en PostGIS?

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 estoy obteniendo resultados en grados. Creo que debería trabajar con la geografía, pero ¿cómo puedo convertir un geom en una geografía? Intenté con (a.geom :: geografía) pero obtengo un error.

¿Qué puedo hacer para obtener mi resultado en metros?

Gracias

21voto

Uncle Philster Puntos 1

Con ST_Distance_Sphere puedes lograr eso:

 ST_Distance_Sphere(a.geom,b.geom)
 

3voto

Marc Puntos 230

Las unidades de SRID 4269 (NAD 83) no son metros - esta es una geodésica de proyección, es decir, las coordenadas son grados (coordenadas geográficas).

pacofvf la respuesta que le dará la distancia en metros, pero si usted realmente su inicial coordenadas especificado en metros, a continuación, entonces usted debe utilizar un proyectado sistema de coordenadas. Probablemente para América del Norte quieres algo como el Estado de Plano Sistema de Coordenadas que tiene una serie de proyecciones diferentes dependiendo de la región en la que desea asignar.

Sospecho que a pesar de que sólo utiliza lat/lon valores, por lo que probablemente este segundo párrafo no es relevante - sólo tiene que utilizar el ST_Distance_Sphere función que el anterior.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X