2025年01月14日 MySQL中的st distance sphere函数详解 极客笔记

在MySQL数据库中,st_distance_sphere函数是用于计算球面两点之间的距离的函数。这个函数在地理信息系统中非常常见,能够帮助我们计算两个经纬度坐标点之间的实际距离,而不是简单地计算直线距离。在本文中,将详细介绍st_distance_sphere函数的用法、语法和示例。
st_distance_sphere(point1, point2)
POINT(lon1 lat1)POINT(lon2 lat2)假设我们有一个名为locations的表,包含了几个城市的经纬度信息。我们想计算两个城市之间的实际距离。下面是一个示例:
SELECT 
    city1,
    city2,
    ST_Distance_Sphere(location1, location2) as distance
FROM 
    locations;
假设locations表的结构如下:
| city1 | location1 | city2 | location2 | 
|---|---|---|---|
| Beijing | POINT(116.407396 39.9042) | Shanghai | POINT(121.4737 31.2304) | 
| Tokyo | POINT(139.6917 35.6895) | Seoul | POINT(126.9780 37.5665) | 
| New York | POINT(-74.0060 40.7128) | London | POINT(-0.1278 51.5074) | 
运行上面的SQL语句,将得到计算出的实际距离:
| city1 | city2 | distance | 
|---|---|---|
| Beijing | Shanghai | 1068135 | 
| Tokyo | Seoul | 1151348 | 
| New York | London | 5568571 | 
st_distance_sphere函数返回的距离单位是米。如果需要将距离单位转换成其他单位(如千米、英里等),需要进行相应的计算。st_distance_sphere函数之前,需要确保MySQL中已经加载了spatial扩展。如果没有加载,可以使用以下语句加载:CREATE EXTENSION IF NOT EXISTS postgis;
本文详细介绍了MySQL中的st_distance_sphere函数,包括其语法、示例和注意事项。通过使用这个函数,我们可以方便地计算球面两点之间的实际距离,更好地处理地理信息数据。
本文链接:http://so.lmcjl.com/news/21348/