Suite

Distance entre deux points par rapport à la longueur de la chaîne


J'ai donc deux points entre lesquels je veux calculer la distance. Si j'utilise :

SELECT ST_Distance_Spheroid(point_a, point_b, 'SPHEROID["GRS 1980",6378137,298.257222101]') / 1000 FROM ( VALUES ( ST_GeomFromText('POINT(116.330533333333 39.976266666667)'), ST_GeomFromText('.975)'' 39) requête AS (point_a, point_b);

J'obtiens la valeur 1.1953967900687876km. Je pense que c'est la valeur correcte car lorsque j'utilise un calculateur de distance en ligne, j'obtiens ce résultat ; cependant, si je place les deux points dans un LINESTRING et que je calcule ensuite la longueur, j'obtiens un nombre différent :

SELECT ST_Length2D_Spheroid(trajectory, 'SPHEROID["GRS 1980",6378137,298.257222101]') / 1000 FROM ( VALUES ( ST_GeomFromEWKT('SRID=4326;LINESTRING(39.976266666667 116.330533333333, 39.9785) 116.34415) );

J'obtiens la valeur 1.5228519672706637km. Je ne comprends pas pourquoi cela se produit. Dans le cas de seulement deux points, ces distances ne devraient-elles pas parier la même?

Merci d'avance.


Il n'y a en fait aucune différence entre les deux fonctions, qui donnent toutes les deux 1,195 km. Le problème est que dans votre question, l'ordre des axes est inversé pourtrajectoire, vous voyez donc des réponses différentes de celles que vous attendez.

SELECT ST_AsLatLonText(point_a) AS point_a_latlon, ST_AsLatLonText(point_b) AS point_b_latlon, ST_Distance_Spheroid(point_a, point_b, spheroid) / 1000 AS ST_Distance_Spheroid_km, ST_Length2D_Ength2D_Spheroid_Spheroid(ST_Lb, spheroid) / 1000 AS ST_Distance_Spheroid_km, ST_Length2D_Ength2D_Spheroid(ST_L (116.3305333333333 39.976266666667)', 4326) AS point_a, ST_GeomFromText('POINT(116.34415 39.97875)', 4326) AS point_b, 'SPHEROID["GRS 1980",6378137,298.257222101]'::spheroid ) AS f; -[ ENREGISTREMENT 1 ]-----------+------------------------------- point_a_latlon | 39°58'34.560"N 116°19'49.920"E point_b_latlon | 39°58'43.500"N 116°20'38.940"E st_distance_spheroid_km | 1.19539679006871 st_length2d_spheroid_km | 1.19539679006871


Voir la vidéo: Calculer la longueur dun segment - Seconde (Octobre 2021).