MySQL点和圆之间的距离

Posted

技术标签:

【中文标题】MySQL点和圆之间的距离【英文标题】:MySQL Distance Between Point and Circle 【发布时间】:2022-01-06 09:53:53 【问题描述】:

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

在图片中也描述为“D”:

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

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

这会返回这两点之间的距离。但我想计算点和圆之间的距离。我的参数是:

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

mysql 中是否有一个神奇的功能,或者我应该求助于使用数学方法的手动计算。

每个意见都很重要。谢谢

【问题讨论】:

您可能需要自己输入公式。看起来并不太令人生畏。 你必须自己实现功能varsitytutors.com/hotmath/hotmath_help/topics/… 【参考方案1】:

我觉得很简单

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

应该可以。

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

【讨论】:

成功了。括号中有语法错误,请考虑编辑以供将来参考。

以上是关于MySQL点和圆之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

[原创题] 树上点到路径的距离, 以及树上路径到路径的距离

检查geoFence中的地理点和Java中的距离

获取点和影片剪辑之间的距离

点和线之间的最短距离(Google Maps API 问题?)

点和线之间的最短距离(Google Maps API问题?)

如何计算一个python函数来计算/绘制点和曲线之间的最小距离?