4 votos

PostGIS - resultado incorrecto de la distancia entre dos puntos

Estoy bastante confundido el camino de PostGIS es devolver el resultado de esta consulta básica.

Así que estoy tratando de encontrar la distancia entre dos puntos 45.2714,71.2087 y 42.3739,66.39

y la distancia debe ser de ~505 km

pero cuando me encontré con la consulta (considerando 1 grado = 111km)

select st_distance (st_setsrid(st_makepoint(71.2087,45.2714),4326), 
      st_setsrid(st_makepoint(66.39,42.3739),4326))*111 as d 

Puedo obtener el resultado en forma de 624 km.

Puede alguien por favor decirme qué estoy haciendo mal aquí ?

Gracias.

4voto

NilObject Puntos 7874

Un grado no "igualdad de 111km" en la generalidad.

select st_distance(
  'POINT(71.2087 45.2714)'::geography, 
  'POINT(66.39 42.3739)'::geography) AS d;

O

select st_distance_spheroid(
  'SRID=4326;POINT(71.2087 45.2714)'::geometry, 
  'SRID=4326;POINT(66.39 42.3739)'::geometry,
  'SPHEROID["WGS 84",6378137,298.257223563]') AS d;

2voto

texai Puntos 178

intente utilizar la métrica de transformación:

SELECT ST_Distance(
            ST_Transform(ST_GeomFromText('POINT(71.2087 45.2714)',4326),900913),
            ST_Transform(ST_GeomFromText('POINT(66.39 42.3739)', 4326),900913)
        );

espero te sirva de ayuda...

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