ST_DistanceSphere — 使用球體地球模型,傳回兩個經緯度幾何圖形之間的最小距離 (以公尺為單位)。
float ST_DistanceSphere(
geometry geomlonlatA, geometry geomlonlatB, float8 radius=6371008)
;
傳回兩個經緯度點之間的最小距離 (以公尺為單位)。使用球體地球和從 SRID 定義的橢球體推導出的半徑。比 ST_DistanceSpheroid 快,但準確性較低。PostGIS 1.5 之前的版本僅針對點實作。
可用性:1.5 - 引入了對點以外的其他幾何類型支援。之前的版本僅適用於點。
變更:2.2.0 在先前的版本中,此函數稱為 ST_Distance_Sphere。
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