在我的 MySQL 数据库中,我有三个字段,x,y,z
代表一个位置。
我想将这些坐标转换为极坐标az,el,r
,并根据这些选择(例如)az
在某个区域内的行。
我将如何在 MySQL 中执行此操作?
编辑:
这不是关于如何实际进行坐标转换的问题,而是,如果 MySQL 能够基于某种方法转换数据,然后在转换后使用基于转换后比较的标准来选择数据数据。
在我的 MySQL 数据库中,我有三个字段,x,y,z
代表一个位置。
我想将这些坐标转换为极坐标az,el,r
,并根据这些选择(例如)az
在某个区域内的行。
我将如何在 MySQL 中执行此操作?
编辑:
这不是关于如何实际进行坐标转换的问题,而是,如果 MySQL 能够基于某种方法转换数据,然后在转换后使用基于转换后比较的标准来选择数据数据。
解决三角...
笛卡尔=沿多远和向上多远极坐标=多远和角度
为了转换,您需要解决两个已知边的直角三角形
你需要使用毕达哥拉斯定理来找到长边(斜边)
你需要切线函数来找到角度
r = √ ( x2 + y2 )
= 毕达哥拉斯
θ = tan-1 ( y / x )
= 正切函数
假设没有负值 - 那么你将不得不取 tan 函数的倒数,或者将它们转换为它们的正对应物
Mysql毕达哥拉斯
SQRT((POWER(242-'EAST',2)) + (POWER(463-'NORT',2))) < 50
假设你的坐标看起来像这样......这是一个例子
http://www.tek-tips.com/viewthread.cfm?qid=1397712
这里的正切函数
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_tan
恕我直言,这实际上是一个球坐标系数学问题,而不是特定于 MySQL 的问题。
MySQL 恰好是这个实例中的数据容器。
对于任何解决方案,您都需要先进行数学运算,然后将方程应用于数据。
我可以帮助使用 MySQL,但我必须用谷歌解决这些方程,而且我的手指很累 =)