ST_DistanceSphere — 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_DistanceSphere(
geometry geomlonlatA, geometry geomlonlatB, float8 radius=6371008)
;
Gibt die kürzeste Distanz zwischen zwei Punkten zurück, die über Länge und Breite gegeben sind. Verwendet die Kugelform für die Erde und den Radius des Referenzellipsoids, der durch die SRID festgelegt ist. Ist schneller als ST_DistanceSpheroid, aber weniger genau. 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_Sphere bezeichet.
SELECT round(CAST(ST_DistanceSphere(ST_Centroid(geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters, round(CAST(ST_Distance(ST_Transform(ST_Centroid(geom),32611), ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As dist_utm11_meters, round(CAST(ST_Distance(ST_Centroid(geom), ST_GeomFromText('POINT(-118 38)', 4326)) As numeric),5) As dist_degrees, round(CAST(ST_Distance(ST_Transform(geom,32611), ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As min_dist_line_point_meters FROM (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', 4326) As geom) as foo; dist_meters | dist_utm11_meters | dist_degrees | min_dist_line_point_meters -------------+-------------------+--------------+---------------------------- 70424.47 | 70438.00 | 0.72900 | 65871.18