postgresql ST_Dinstince 计算两个经纬度的距离
时间: 2024-05-01 17:22:11 浏览: 266
计算两个经纬度之间的距离
在 PostgreSQL 中可以使用 PostGIS 扩展来计算两个经纬度之间的距离。具体可以使用 ST_Distance 函数,示例如下:
```sql
SELECT ST_Distance(
'POINT(116.404, 39.915)'::geography,
'POINT(121.4737, 31.2304)'::geography
) / 1000 as distance_in_km;
```
其中 `POINT(lon, lat)` 是一个地理位置坐标,使用 `::geography` 可以将其转换为地理坐标。ST_Distance 函数返回的结果单位是米,除以 1000 可以得到千米单位的距离。
需要注意的是,使用 PostGIS 扩展前需要先安装和启用该扩展。可以使用以下命令进行安装和启用:
```sql
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
```
执行以上命令后,PostGIS 扩展就会被安装并启用。
阅读全文