6 votos

¿Cómo medir la longitud de una línea con precisión?

En postgis 1.5 para la consulta dada a continuación la respuesta es 1540651.62674101 metros ,

SELECT ST_Length(ST_GeomFromText('LINESTRING(77.83042478941326 
9.98463896136159,78.03469506809812 23.90398909552571 )',4326),true);

pero en google earth la misma línea da 1538923 metros en sus propiedades, alrededor de 0,1% de error entre las dos lecturas.

Cuál es exacta, si la lectura de Google earth es exacta, cómo obtenerla en postgis1.5 ...

alguna idea...

Ayuda, por favor.

9voto

Symmetric Puntos 158

Aparte de que, como dice @underdark ST_Length() devuelve una distancia cartesiana entre los dos puntos que en un CS no proyectado no tiene sentido en este caso, yo me quedaría con la respuesta que te da PostGIS. Google Earth utiliza un globo esférico, mientras que el globo WGS84 es un esferoide - es ligeramente aplastado en los polos. En distancias cortas, no habrá mucha diferencia entre los dos, pero a 1500 km, habrá una diferencia más significativa, más aún cuando su línea se desvía de este / oeste.

Además, como el esferoide WGS84 es sólo un modelo idealizado de la Tierra, no te dejes engañar por la precisión del resultado, la exactitud va a ser mucho menor. Si se utiliza el WGS84 para guiar un misil a esa distancia, lo más probable es que dé en la calle de al lado.

Puede obtener el mismo resultado que GE en PostGIS si lo desea, utilizando ST_Distance_Sphere() esto es útil si utiliza PostGIS como proveedor de datos para GE.

Ejecutando tu ejemplo en mi sistema PostGIS 1.5, obtengo:

SELECT ST_Distance_Sphere(
ST_GeomFromText('POINT(77.83042478941326 9.98463896136159)',4326),
ST_GeomFromText('POINT(78.03469506809812 23.90398909552571)',4326));

st_distance_sphere 
--------------------
1547914.78948724

SELECT ST_Distance_Spheroid(
ST_GeomFromText('POINT(77.83042478941326 9.98463896136159)',4326),
ST_GeomFromText('POINT(78.03469506809812 23.90398909552571)',4326),
'SPHEROID["WGS 84",6378137,298.257223563]');

st_distance_spheroid 
----------------------
1540651.62674101

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