我正在测试不同的公式,用于查找给定经度/纬度范围内给定半径内地球上的特定点。我一直在使用'余弦球形法则',我相信这是实施Haversine。SQL查询中的半正定/球形定律/ vincenty查询
对于下列公式,这些都是变量:
[$纬度/ $经度] =原点
[纬度/经度] =第二点的点
[$半径] =余弦
3959 * acos(cos(radians('.$lat.')) * cos(radians(latitude)) * cos(radians(longitude) - radians('.$lon.')) + sin(radians('.$lat.')) * sin(radians(latitude)))) <= '.$radius.';
半正矢半径
球法(至少我觉得是!)
3959*3.1415926*sqrt((latitude-'.$lat.')*(latitude-'.$lat.') + cos(latitude/57.29578)*cos('.$lat.'/57.29578)*(longitude-'.$lon.')*(longitude-'.$lon.'))/180) <= '.$radius.';';
我最初遇到了很多的信息说,半正弦波是黄金标准尽可能准确度来了。然而,似乎也有一种观点认为,余弦的球形定律比Haversine更准确,只要被测量的距离大于5米左右即可。此外,有人说,文森特被称为在准确性方面胜出。
三个问题:
是我haversine公式实际上是半正弦波或别的东西?
任何想法都胜出最准确?
任何人都可以为我提供Vincenty的配方,沿着上述论坛的路线吗?
谢谢!
Q1:你的推荐配方开始与'SELECT ID,(3959个* ACOS('...了'acos'品牌作为余弦公式的球形规律,绝对不是haversine公式Q2.1半胱氨酸的速度并不快,Q2.2球形的余弦定律在小的差异上是LESS准确的。 –