小数纬度/经度的最大长度?

时间:2009-12-13 22:06:46

标签: math geolocation geospatial geography geo

地球表面可以有一个纬度和经度的最大长度(公里或英里 - 但请注明)是什么?

我不确定我是否足够清楚,让我重新说明一下。众所周知,地球不是一个完美的圆,赤道(或厄瓜多尔)纬度/经度的1.0变化可能意味着一个距离,而两极的相同变化可能意味着另一个完全不同的距离。 / p>

我正在尝试缩减数据库返回的结果数(在本例中为MySQL),这样我就可以使用Great Circle公式计算几个点之间的距离。我没有选择所有点然后单独计算它们,而是选择纬度/经度边界内的坐标,例如:

SELECT * FROM poi
 WHERE latitude >= 75 AND latitude <= 80
   AND longitude >= 75 AND longitude <= 80;

PS:已经很晚了,我觉得我的英语没有像我预期的那样出现,如果有什么你无法理解请说出来,我会根据需要修理/改进它,谢谢

4 个答案:

答案 0 :(得分:9)

纬度的长度变化很小,在赤道约110.6公里到极点附近约111.7公里之间。如果地球是一个完美的球体,它将是恒定的。为了获得像已知(纬度,经度)10公里内的点列表的目的,假设恒定的111公里应该没问题。

然而,与经度完全不同的故事。它的范围从赤道约111.3公里,纬度60度55.8公里,纬度89度1.9公里到极点零点。

你问错了问题;你需要知道 MINIMUM 的长度,以确保你的查询不会拒绝有效的候选人,不幸的是,经度的最小长度是零!

假设您采用其他民间建议,使用纬度和经度均为111公里左右的常数。对于10公里的查询,您将使用10/111 = 0.09009纬度或经度的边距。这在赤道上是可以的。然而,在北纬60度(例如斯德哥尔摩的地方)向东行驶0.09度经度只需要5公里左右。在这种情况下您错误地拒绝了大约一半的有效答案

幸运的是,获得更好的经度界限(取决于已知点的纬度)的计算非常简单 - 请参阅this SO answer,以及Jan Matuschek所引用的文章。

答案 1 :(得分:7)

最初,海里的定义是赤道上一分钟经度的长度。因此,赤道周围有360 * 60 = 21,600海里。同样,一公里的原始定义是10,000公里=从极点到赤道的长度。因此,假设球形地球,则会出现:

  • 40,000÷21,600 = 1.852 km / min
  • 1.852×60 =每度111.11公里

允许球状地球而不是球形地球将略微调整因子,但不是那么多。你可以相信这个因素低于每分钟1.9公里或每度114公里。

答案 2 :(得分:4)

如果您可以使用MySQL空间扩展:http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html,您可以使用其运算符和函数来过滤点并计算距离。请参阅http://dev.mysql.com/doc/refman/5.0/en/functions-that-test-spatial-relationships-between-geometries.html,特别是包含()距离()

答案 3 :(得分:2)

用于地球的参考椭球是WGS84系统,意思是 赤道的地球半径长度为 6 378 137米或3963.19英里

在赤道达到最大经度长度并且大约是(上限) 111.3195公里或 69.1708英里

赤道和1°之间达到一度纬度的最大长度。它几乎完全等于经度的最大长度;第一个近似值表明差值小于4.2米,产生

111.3153公里或 69.1682英里