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点和圆之间的距离的主要内容,如果未能解决你的问题,请参考以下文章
点和线之间的最短距离(Google Maps API 问题?)