已知三个经纬点及点至目标点的距离,求目标点的经纬度。有这样的算法或者库吗库的话最好要 python
1
line 2015-11-28 01:39:07 +08:00
不就是 GPS 吗?
|
2
zjengjie 2015-11-28 02:15:55 +08:00
一个坐标点和半径可以写出一个圆方程,两个圆方程可以解出两个点,判断哪个点到第三个坐标的距离正确就可以了。
|
3
linhua 2015-11-28 03:11:58 +08:00
球面的,还是平面的?经纬点和目标点都在球面上?
|
7
firefox12 2015-11-28 09:10:40 +08:00 via iPad
..... 2 个圆相交不是 2 个点好吗?
|
8
joshz 2015-11-28 09:36:55 +08:00
没有闭合解是最麻烦的,需要在空间中搜索次优解,很多论文用最大似然法
|
9
cdlxkill 2015-11-28 10:00:04 +08:00
一般都没有闭合解 直接 ls 估计吧
|
10
nevin47 2015-11-28 10:49:24 +08:00
前段时间做一个比赛的时候写了类似的,不过是两点带速度求相遇的。
我的处理方法是直接列方程,然后 python 调用 scipy.optimize 求解,初始值设置方向正确的话可以求到解的 不过球面的话不知道需要多考虑什么问题了 |
13
shakespaces 2015-11-28 13:12:47 +08:00
如果把地球近似看成正球体还是很好算的,就是完全按真实情况的话,地球是椭球就不是那么直观了
|
14
just1 OP @shakespaces 正圆就可以,不要求太精确,😍求算法
|
15
shakespaces 2015-11-28 13:26:13 +08:00
@just1 我只是说了一下,手头并没有现成的算法。。。
|
16
linhua 2015-11-28 13:42:34 +08:00
经纬度和球坐标系的相互转换比较容易,建议使用球坐标系列方程求解。手算嫌麻烦,可使用 mathematica 软件求解。
https://zh.wikipedia.org/wiki/%E5%9D%90%E6%A8%99%E7%B3%BB |
24
linhua 2015-11-28 16:48:45 +08:00 2
@just1
数学专业方面的问题推荐在 Mathematics Stack Exchange 中提问,比较专业,不过你的问题要描述清楚。这个 GPS 定位算法很复杂的。而且通常并不是用软件实现的,而是在 GPS 芯片内部实现的。只是研究者可以通过用算法实现来模拟,像 Software-defined Radio(SDR)(软件定义无线电)一样,这种叫 Software-Defined GNSS Receivers 可参考: https://www.wolfram.com/mathematica/ http://math.stackexchange.com/ http://www.cnblogs.com/magicboy110/archive/2010/12/09/1901669.html http://gpsworld.com/innovation-python-gnss-receiver/ https://en.wikipedia.org/wiki/Global_Positioning_System http://ocw.mit.edu/courses/earth-atmospheric-and-planetary-sciences/12-540-principles-of-the-global-positioning-system-spring-2012/lecture-notes/ http://gpsworld.com/software-gnss-receiver-an-answer-for-precise-positioning-research/ http://gage.upc.edu/forum/gps-data-processing-code-and-phase-algorithms-techniques-and-recipes https://en.wikipedia.org/wiki/GNSS_applications |
25
linhua 2015-11-28 17:01:12 +08:00
|