ST_DistanceSpheroid — Gibt die kürzeste Distanz zwischen zwei geometrischen Objekten zurück, die über Länge, Breite und ein bestimmtes Referenzellipsoid gegeben sind. Vorgängerversionen von PostGIS 1.5 unterstützten nur Punkte.
float ST_DistanceSpheroid(geometry geomlonlatA, geometry geomlonlatB, spheroid measurement_spheroid=WGS84);
Gibt die kürzeste Distanz zwischen zwei geometrischen Objekten in Meter zurück, die über Länge, Breite und ein bestimmtes Referenzellipsoid gegeben sind. Siehe die Erklärung zu Referenzellipsoiden unter ST_LengthSpheroid. Vorgängerversionen von PostGIS 1.5 unterstützten nur Punkte.
|
|
|
Aktuell schaut diese Funktion nicht auf die SRID der Geometrie, sondern nimmt an, dass die Geometrie in den Koordinaten des gegebenen Referenzellipsoids vorliegt. Vorgängerversionen von PostGIS 1.5 unterstützten nur Punkte. |
Verfügbarkeit: 1.5 die Unterstützung für weitere geometrische Datentypen neben Punkten eingeführt. Bei Vorgängerversionen wurden nur Punkte unterstützt.
Änderung: 2.2.0 In Vorgängerversionen als ST_Distance_Spheroid bezeichet.
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