在我的MySQL数据库中,我有三个字段,x,y,z
代表一个位置。
我想将这些坐标转换为极坐标az,el,r
,并根据这些坐标选择(例如)az
在某些区域内的行。
我将如何在MySQL中执行此操作?
修改
这在中是关于如何实际进行坐标转换的问题,而是,如果MySQL能够基于某种方法转换数据,然后选择数据一旦它基于转换数据的比较,使用标准对其进行转换。
答案 0 :(得分:3)
解决三角......
笛卡儿=多远和多远 极地=距离多远和角度
为了转换你需要为两个已知的边解决直角三角形
你需要使用毕达哥拉斯定理来找到长边(斜边)
你需要切线函数来找到角度
r = √ ( x2 + y2 )
=毕达哥拉斯
θ = tan-1 ( y / x )
=正切函数
假设没有负值 - 那么你将不得不采用tan函数的倒数,或将它们转换为正对应值
Mysql Pythagorus
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
答案 1 :(得分:1)
恕我直言,这实际上是一个球面坐标系数学问题,而不是特定于MySQL的问题 MySQL恰好是这个例子中的数据容器。
对于您需要先计算数学的任何解决方案,然后将方程应用于数据就成了问题。
我可以帮助MySQL,但我必须谷歌解决这些方程式,我的手指累了=)