GPS坐标:一个点周围1平方公里

时间:2010-10-22 20:53:27

标签: javascript math gps coordinates

我希望那里有人可以给我一个方程来计算一个特定点附近的1平方公里(X从a.aaa到b.bbb,Y从c.ccc到c.ccc),比如{{1 }和lat = 53.38292839?我还需要一个点周围2公里,5公里和10公里的方格。

我试过谷歌搜索无济于事......这是深夜,希望有人可以快速解决方案,然后再深入研究三角函数...

我将在Javascript中运行所有这些,尽管任何语言都可以。

4 个答案:

答案 0 :(得分:37)

如果世界是一个完美的球体,根据基本的三角学......

纬度在世界任何地方都具有相同的线性距离,因为所有纬度线都是相同的尺寸。因此1度纬度等于地球周长的1/360,即40,075 km的1/360。

经度线的长度取决于纬度。纬度l的经度线为cos(l)* 40,075 km。一度经度将是1/360。

所以你可以从那里倒退。假设你想要一个非常接近一平方公里的东西,你需要1 *(360/40075)= 0.008983纬度。

在您的示例纬度53.38292839处,经度线为cos(53.38292839)* 40075 = [约] 23903.297 km长。所以1 km是1 *(360 / 23903.297)= 0.015060度。

实际上地球不是一个完美的球体,它在赤道上更加肥胖。上面给出了世界上大多数有用区域的一个非常好的答案,但是在极点附近容易变得有些奇怪(长/纬线中的矩形停止看起来像地球上的矩形)。例如,如果你在赤道上,假设的经度线是0公里长。那么你如何处理需要计算学位的需要将取决于你想要数字的原因。

答案 1 :(得分:4)

以下是我的笔记中使用的十进制GPS。

Lat Long: 纽约市40N 47 73W 58 40.783333 73.966667

清洗DC 38N 53 77W 02 38.883333 77.033333

产量= 209英里!!非常关闭

距离(英里)(x)= 69.1(lat2-lat1) 距离(英里)(y)= 53.0(long2 - long1) 乌鸦飞了sqrt(x2 + y2)......呃!@

delta(LAT)/ Mile = .014472 delta(LONG)/ Mile = .018519

使用框作为近似值 寻找100英里范围内的人(100北/ 100南,100 E / 100 W) 从0,0开始  -14.472 / + 14.472,-18.519 / 18.519

答案 2 :(得分:1)

在给定中心的情况下,生成gps方形的更简单方法是使用间接Vincenty算法。此处的Javascript代码显示了如何执行此操作http://www.movable-type.co.uk/scripts/latlong.html。 使用圆形创建正方形并不困难。正方形与每个点的距离相等。因此,给定一个中心点,距离中心的距离,根据方形的旋转将轴承从0或任何数字改变,并增加90度或PI / 2弧度。通过每次增加90度,你将在圆形空间中增加一个正方形。

我自己使用它来生成具有给定距离的中心点周围的GPS点 ---。 - / - --0-- - / - ---

答案 3 :(得分:0)

TL; DR

10 km = 0.08999距某个geopoint的半径。此计算仅基于纬度值,并且仅适用于具有WGS84投影的地理位置。

更多详细信息

如果您想获得更准确的答案,则必须通过构建某种函数来进行计算。但是它仍然不能保证,因为人们甚至为错误的程度而争吵。考虑高度,是否使用墨卡托等等。

警告

上面的值只是一个经验法则,因此请勿将其用于关键应用程序。

参考

GIS StackExchange,How do I calculate the bounding box for given a distance and latitude/longitude,通过David the Australian developer回答