ST_DistanceSpheroid — Renvoie la distance minimale entre deux géométries lon/lat en utilisant un modèle de terre sphéroïdale.
float ST_DistanceSpheroid(geometry geomlonlatA, geometry geomlonlatB, spheroid measurement_spheroid=WGS84);
Renvoie la distance minimale en mètres entre deux géométries lon/lat pour un sphéroïde donné. Voir l'explication des sphéroïdes donnée pour ST_LengthSpheroid.
|
|
|
Cette fonction ne prend pas en compte le SRID de la géométrie. Elle suppose que les coordonnées de la géométrie sont basées sur le sphéroïde fourni. |
Disponibilité : 1.5 - la prise en charge d'autres types de géométrie que les points a été introduite. Les versions précédentes ne fonctionnaient qu'avec des points.
Modifié : 2.2.0 Dans les versions précédentes, cette fonction était appelée ST_Distance_Sphéroïde
WITH input AS (
SELECT ST_Centroid(
ST_GeomFromText(
'LINESTRING(-118.584 38.374,-118.583 38.5)', 4326
)
) AS source,
ST_GeomFromText('POINT(-118 38)', 4326) AS target
)
SELECT round(
ST_DistanceSpheroid(
source,
target,
'SPHEROID["WGS 84",6378137,298.257223563]'
)::numeric,
2
) AS dist_meters_spheroid,
round(ST_DistanceSphere(source, target)::numeric, 2)
AS dist_meters_sphere,
round(
ST_Distance(
ST_Transform(source, 32611),
ST_Transform(target, 32611)
)::numeric,
2
) AS dist_utm11_meters
FROM input;
dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters
----------------------+--------------------+-------------------
70454.92 | 70424.71 | 70438.00