名称

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

示例

Code
WITH sample AS (
    SELECT
        ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', 4326) AS geom,
        ST_GeomFromText('POINT(-118 38)', 4326) AS pt
)
SELECT
    round(ST_DistanceSphere(ST_Centroid(geom), pt)::numeric, 2) AS dist_meters,
    round(ST_Distance(
        ST_Transform(ST_Centroid(geom), 32611),
        ST_Transform(pt, 32611)
    )::numeric, 2) AS dist_utm11_meters,
    round(ST_Distance(ST_Centroid(geom), pt)::numeric, 5) AS dist_degrees,
    round(ST_Distance(
        ST_Transform(geom, 32611),
        ST_Transform(pt, 32611)
    )::numeric, 2) AS min_dist_line_point_meters
FROM sample;
栅格输出
dist_meters | dist_utm11_meters | dist_degrees | min_dist_line_point_meters
-------------+-------------------+--------------+----------------------------
    70424.71 |          70438.00 |      0.72900 |                   65871.18
Figure
Geometry figure for visual-st-distancesphere-01