跳转到内容

返回两点之间的球面距离(单位为米)。

func.st_distance_sphere(<lng1>, <lat1>, <lng2>, <lat2>)
func.st_distance_sphere(-73.9857, 40.7484, -0.1278, 51.5074)
┌───────────┐
│ 5570222.5 │
└───────────┘
ST_DISTANCE_SPHERE(<lng1>, <lat1>, <lng2>, <lat2>)

纽约市与伦敦之间的距离(单位为米):

SELECT ST_DISTANCE_SPHERE(-73.9857, 40.7484, -0.1278, 51.5074) AS distance_meters;
┌─────────────────┐
│ distance_meters │
├─────────────────┤
│ 5570222.50 │
└─────────────────┘

以千米为单位的距离(将米数除以 1000):

SELECT ST_DISTANCE_SPHERE(-73.9857, 40.7484, -0.1278, 51.5074) / 1000 AS distance_km;
┌─────────────┐
│ distance_km │
├─────────────┤
│ 5570.22 │
└─────────────┘

以英里为单位的距离(将米数除以 1609.344):

SELECT ST_DISTANCE_SPHERE(-73.9857, 40.7484, -0.1278, 51.5074) / 1609.344 AS distance_miles;
┌────────────────┐
│ distance_miles │
├────────────────┤
│ 3461.02 │
└────────────────┘