MySQL 点到圆的距离

MySQL Distance Between Point and Circle

我的目标是计算点和圆之间的最小距离(由点和半径定义)。这个问题也定义了一个shortest distance between a point and a circle.

在图片中也描述为 'D':

首先,我研究了两点之间的距离,并让这个查询按预期工作。

select st_distance_sphere(
POINT(-27.3449,33.7501), 
POINT( 22.6761,45.7442)
) 

这 returns 我这两点之间的距离。但我想计算一个点和一个圆之间的距离。我的参数是:

point1_lat, point1_long, point2_lat, point2_long, point2_radius (in meters)

在MySQL中有这个神奇的功能吗?或者我应该求助于使用数学方法的手动计算。

每个意见都很重要。谢谢

我觉得很简单

GREATEST(st_distance_sphere(circle_center, point) - circle_radius, 0)

应该可以。

计算圆心到点的距离,圆到点的最小距离减去circle_radius。然后我们确保它是非负的(如果点在圆内)。