2009-12-13 91 views
5

什么是最大长度(以公里或英里为单位 - 但请具体说明)经度和纬度可以在地球表面产生一度的程度?小数纬度/经度的最大长度?

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

我想缩小数据库返回结果的数量(在这种情况下,MySQL),以便我可以使用Great Circle公式计算几个点之间的距离。而不是选择所有的点,然后计算他们的个人我要选择的坐标是纬度/经度边界之内,例如:

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

PS:这晚,我觉得我的英语没有想出了如我希望,如果有什么你不明白,请说出来,我会根据需要修复/改进,谢谢。

+1

放松 - 你的英语很好。转换为UTM可能是一种选择 - 它旨在处理曲率问题。 – 2009-12-13 22:11:39

+0

谢谢,UTM对我来说是新的。我会深入一点。 – 2009-12-13 22:24:51

+0

你问了一个错误的问题,没有回答者考虑过你的描述(第三段)如何计划使用它。只有在赤道才能使用这个或类似的答案 - 请参阅我的答案。 – 2010-07-14 23:17:22

回答

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提及的文章。

7

最初,海里的定义是赤道上一分的经度长度。所以,赤道周围有360 * 60 = 21,600海里。同样,一公里的原始定义是1万公里=从极到赤道的长度。因此,假定一个球形大地,将有:

  • 40000÷21600 =1.852公里每分钟
  • 1.852×60 = 111.11每度公里

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

+0

真棒,赞扬你! =) – 2009-12-13 22:20:54

+0

-1阅读OP的第3段,看看答案的用途,并查看高纬度地区发生了什么。 – 2010-07-14 23:18:43

+0

@John:问题标题要求学位的“最大长度”。我的回答给出了这些信息。 – 2010-07-15 05:38:54

2

参考椭球用于地球是WGS84系统,这意味着 ,对于赤道地球半径具有

在达到经度的最大长度的的 6 378137米或3963.19英里长度赤道和近似(上限) 111.3195 km或 69.1708英里

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

111.3153公里或 69.1682英里

+0

-1解决OP的标题问题,并忽略答案的用途。 – 2010-07-14 23:20:47

+0

只是问: 由于问题是*仍然*标记在一个错误的标题下,这不是更好的解决方案来纠正错误的问题,而不是 投票下来正确的答案? 因此,如果人们只读标题,他们仍然会得到错误的印象。那些真正想知道经度/纬度的最大长度的人呢? 那么如何使用您的声誉来编辑问题? – 2010-08-08 21:11:23