十进制纬度/经度度数的最大长度是多少?

5

地球表面上一度纬度和经度的最大长度是多少(以公里或英里为单位 - 但请具体说明)?

我不确定我是否表达清楚,让我重新说一遍。众所周知,地球不是一个完美的圆形,赤道(或厄瓜多尔)上纬度/经度的1.0变化可能意味着一种距离,而在极点相同的变化可能意味着另一种完全不同的距离。

我试图缩小数据库(在这种情况下为MySQL)返回结果的数量,以便我可以使用Great Circle公式计算多个点之间的距离。我希望选择在纬度/经度边界内的坐标,例如:

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

PS:由于时间已晚,我觉得我的英语表达并不如预期,如果有什么您无法理解的,请告诉我,我会根据需要进行修正/改进,谢谢。


1
放心 - 你的英语很好。转换为UTM可能是一个选择 - 它旨在处理曲率问题。 - OMG Ponies
谢谢,UTM对我来说是新的。我会深入了解它。 - Alix Axel
你提出了错误的问题,没有回答者考虑到你描述的如何计划使用它的内容(第三段)。仅在赤道附近使用此类或类似答案是可以的--请参阅我的回答。 - John Machin
对于所有真正想知道最大长度的人,Leffler和我已经给出了答案。 - Thorsten S.
4个回答

9

纬度的长度变化很小,在赤道约为110.6公里,在极地附近约为111.7公里。如果地球是一个完美的球体,那么它应该是恒定的。例如,如果要获取某个已知点(lat,lon)10公里范围内的点列表,则假设常数111公里应该没问题。

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

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

假设你采用其他人的建议,对纬度和经度都使用约111公里的常数。对于10公里的查询,您将使用10/111 = 0.09009度的纬度或经度边距。这在赤道上是可以的。但是在60度纬度(例如斯德哥尔摩所在的位置)东行0.09度经度只能让你走大约5公里。在这种情况下,你错误地拒绝了约一半的有效答案

幸运的是,获取更好经度范围(取决于已知点的纬度)的计算非常简单--请参见这个SO答案和Jan Matuschek的文章。


7

最初,一个海里的定义是赤道上一分经度长度。因此,在赤道周围有360 * 60 = 21,600个海里。同样,公里的最初定义为10,000公里= 赤道到极点的距离。因此,在假设地球是球形的情况下,会有:

  • 40,000 ÷ 21,600 = 每分钟1.852公里
  • 1.852 × 60 = 每度111.11公里

假设地球是椭圆形而不是球形会略微调整因子,但差别不大。你可以非常自信地认为每分钟少于1.9公里或每度少于114公里。


-1 阅读原帖的第三段以了解答案的用途,并查看在高纬度地区会发生什么。 - John Machin
@John:问题标题要求“度的最大长度”。我的答案提供了这个信息。 - Jonathan Leffler
是的。是的。OP提出了错误的问题,即使“度的最大长度”不适用于问题第三段所述的过滤目的,您仍然盲目地回答了它。 - John Machin
-1 是因为基于这个过于严谨但是具有误导性答案,人们会构建出错误的系统。 - Steven Lu

4

2
地球所使用的参考椭球体是WGS84系统,这意味着赤道半径长度为6,378,137米或3963.19英里。
经度的最大长度在赤道处达到,大约为111.3195公里或69.1708英里(上限)。
纬度一度的最大长度在赤道和1°之间达到。它几乎与经度的最大长度完全相等;初步估计表明差异小于4.2米,因此其长度为111.3153公里或69.1682英里。

-1 仅回答问题标题,忽略该答案的用途。 - John Machin
只是问一下: 既然问题仍然标记在一个错误的标题下,难道更好的解决方案不是纠正错误的问题,而不是投票反对正确的答案吗? 这样人们如果只读标题,仍会产生错误的印象?那么那些真正想知道经度/纬度最大长度的人怎么办? 所以利用您的声望来编辑问题怎么样? - Thorsten S.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接