【发布时间】:2011-10-04 00:17:21
【问题描述】:
给定一组纬度和经度点,我如何计算该组中心点(也就是将视图以所有点为中心的点)的纬度和经度?
编辑:我使用过的 Python 解决方案:
Convert lat/lon (must be in radians) to Cartesian coordinates for each location.
X = cos(lat) * cos(lon)
Y = cos(lat) * sin(lon)
Z = sin(lat)
Compute average x, y and z coordinates.
x = (x1 + x2 + ... + xn) / n
y = (y1 + y2 + ... + yn) / n
z = (z1 + z2 + ... + zn) / n
Convert average x, y, z coordinate to latitude and longitude.
Lon = atan2(y, x)
Hyp = sqrt(x * x + y * y)
Lat = atan2(z, hyp)
【问题讨论】:
-
关于您的解决方案:对于球形地球的假设,您的错误可能不会太大,但最好将地球描述为椭球体。
-
把它写成python函数并分享到gist.github.com/3718961
-
非常重要的是要注意,这是假设您的纬度和经度以弧度为单位的!我挠了挠头,没有意识到这一点。要从十进制转换为弧度,请乘以十进制 * pi/180。然后从弧度转换回十进制,乘以 180/pi。 HTH
-
抱歉迟到了,但我想知道,这个算法背后的数学原理是什么,有人可以告诉我一些解释这个问题的读物吗?谢谢!
-
请问
z是什么?
标签: math latitude-longitude geo