我正在尝试使用中心和半径的坐标在MySQL中创建圆形几何。我到处搜索......我在网站上的 MySQL 文档中能找到的都是多边形。可能是我找错地方了。任何人都可以帮助我使用适当的 SQL 来帮助我创建一个将该圆形几何图形存储为表中的列之一的表吗?另外,我什至不确定在 MySQL 中是否有办法这样做?..我使用的版本是 MySQL 5.6。
提前致谢。
我正在尝试使用中心和半径的坐标在MySQL中创建圆形几何。我到处搜索......我在网站上的 MySQL 文档中能找到的都是多边形。可能是我找错地方了。任何人都可以帮助我使用适当的 SQL 来帮助我创建一个将该圆形几何图形存储为表中的列之一的表吗?另外,我什至不确定在 MySQL 中是否有办法这样做?..我使用的版本是 MySQL 5.6。
提前致谢。
从 MySQL v5.6.1 开始,您可以使用:Buffer(g, d)
返回一个几何图形,该几何图形表示与几何值的距离
g
小于或等于距离 的所有点d
。
显然,在您的情况下g
应该是圆心的点并且d
应该是它的半径。
有两个部分: A.对于给定的测试点,您必须检查它们与给定圆的关系。B.您想在给定圆的圆周上生成点。
A.是的,首先取给定点(测试点)和圆心点之间的距离。这两个点都在纬度和经度中定义。两点 (x1,y1) 和 (x2,y2) 之间的距离公式为距离 d= sqrt[ (x2-x1)^2 + (y2-y1)^2 ]。现在,
B. 在一个圆中,总角度 theta 是 360 度或 2*Pi 的弧度。对于给定的圆,其中心为 (x1, y1),半径为 r。
x = x1 + r * cos(θ)
y = y1 + r * sin(theta)
其中,theta 从零运行到 2*Pi,Pi 为 3.1415。
取决于你怎么做。示例:如果您想要圆上的 10 个点,则增量 =(2*Pi-Zero)/10。
拳头theta为零,然后theta为零+增量,然后theta为零+增量+增量,即2*增量,然后零+3*增量,依此类推。除非你得到等于 2*Pi 的 theta。
对于所有上述 thetas 计算 x 和 y。这些所有 x 和 y 坐标点都在圆的圆周上。