在MySQL中,ST_DISTANCE
和ST_DISTANCE_SPHERE
是两个用于计算两个地理坐标点之间距离的函数。它们的区别在于计算距离的方法和结果的单位。
ST_DISTANCE
函数计算两个地理坐标点之间的距离,使用的是平面几何学的直线距离,这在小范围的距离计算上是准确的。
结果单位通常是与坐标系的单位相同,通常是度(degrees)。这意味着结果以度为单位,不考虑地球的曲率,适用于小范围的距离计算。
ST_DISTANCE_SPHERE
函数计算两个地理坐标点之间的距离,使用的是球面几何学的方法,考虑了地球的曲率。这在计算全球范围的距离时更为准确。
结果单位通常是米(meters),表示在地球上的实际距离.
结论:请使用ST_DISTANCE_SPHERE
来计算距离。
SELECT ST_DISTANCE_SPHERE(POINT(103.67235, 30.614942), POINT(103.654400, 30.635000)) AS distance;
第二个参数 4326 表示坐标系统的编号,这里是使用 WGS 84 坐标系统。