5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 5798|回复: 10
打印 上一主题 下一主题

根据gps经纬度 计算两点距离 附源码

[复制链接]
跳转到指定楼层
楼主
发表于 2011-10-11 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击查看详情
最近在写飞控的地面站软件 希望能与大家多交流经验  

下面附上距离的计算公式 经验证  精确度很高  vb.net源代码

    '计算地球上两点之间的距离并输出
    Public Function getdistance(ByVal lat1 As Double, ByVal lon1 As Double, ByVal lat2 As Double, ByVal lon2 As Double) As Integer
        Static Dim pi As Double = 3.14159265
        Static Dim earthrad As Double = 6378137
        Static Dim rad As Double = Math.PI / 180.0
        Dim radlat1 As Double = lat1 * rad
        Dim radlat2 As Double = lat2 * rad
        Dim a As Double = radlat1 - radlat2
        Dim b As Double = (lon1 - lon2) * rad
        Dim s As Double = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radlat1) * Math.Cos(radlat2) * Math.Pow(Math.Sin(b / 2), 2)))
        s = s * 6378137.0
        s = Math.Round(s * 10000) / 10000
        Return s
    End Function

[ 本帖最后由 leo2006 于 2011-10-11 20:41 编辑 ]

未命名.jpg (13.85 KB, 下载次数: 37)

未命名.jpg

未命名.jpg (13.01 KB, 下载次数: 31)

未命名.jpg

距离计算公式.jpeg (8.35 KB, 下载次数: 75)

距离计算公式

距离计算公式

欢迎继续阅读楼主其他信息

沙发
发表于 2011-10-11 21:15 | 只看该作者
搞测绘的,不懂飞控,略懂VB。
你貌似是用GPS单点定位的经纬度,再把地球当作圆,求弧线长度是么??
按我的理解,“精确度很高”还算不上。专业上是用GPS RTK技术,移动GPS与基准站差分技术求得基线向量(即你说的经纬度差),然后按高斯投影与3度或6度带(参数:投影中心经度,地球长半轴半径a,曲率e,投影面高H,高程异常h),加上投影改正,所得即为地图上距离。
这样做出来可以用来测1:500地形图了,不过航模貌似不需要这么高的精度。但个人觉得既然无人机遥控发射电波,与RTK较相似,添加差分技术应用较方便,提高精度可以运用。
当然前提是你们想把距离弄得很精确,不过我估计国人都没这个兴趣,GPS单点定位M级精度估计大家都满意了~~
3
发表于 2011-10-11 21:22 | 只看该作者
技术贴,先顶后看。
现在愿意分享技术的人不多了。
学习也变得困难重重了。
4
发表于 2011-10-11 21:57 | 只看该作者
这个帖子我看不懂,但是我要留个脚印。谢谢楼主的技术分享。
5
 楼主| 发表于 2011-10-11 22:04 | 只看该作者

回复 沙发 杜威威 的帖子

专业人士 向您学习:em26:  我现在做的这个只是在地面站实时显示两个航点之间的地面距离   还没有加入飞行高度  因为现阶段设计的飞行高度较低  在计算式可以忽略 所以只用了海平面高度去计算         差分gps的话  在设计中单点定位时很重要 考虑到飞行器的飞行方式 所以在距离测算时暂时还用不到  不过还是要谢谢你的建议

[ 本帖最后由 leo2006 于 2011-10-11 22:06 编辑 ]
6
发表于 2011-10-11 22:59 | 只看该作者
我本科大学(西南交大)测量系也有老师在做无人机,不过他的主要目的是将无人机用于1:2000甚至于1:500地形图的航测测量,所以我们需要的就是飞机实时准确位置与空间姿态。
当然,局限本人专业问题,考虑问题仅限于精度,并未考虑实用~如:程序中地球半径6378137,我就很纠结;您所说的“显示两个航点之间的地面距离 ”按专业理解就必须投影到高斯面才正确。种种这些完全是职业病,应该不适合你,只是对测量不受重视发点小感慨,希望楼主不要介意~

[ 本帖最后由 杜威威 于 2011-10-11 23:02 编辑 ]
7
发表于 2011-10-13 21:20 | 只看该作者
感谢楼主分享 以后用得着
8
发表于 2011-10-18 09:04 | 只看该作者
我这个测速器和你的很像,就是结果处以时间。

http://bbs.5imx.com/bbs/viewthre ... &extra=page%3D3
9
发表于 2011-10-18 10:08 | 只看该作者
收藏,学习了
10
发表于 2011-10-18 22:06 | 只看该作者
学习
11
发表于 2011-10-29 08:51 | 只看该作者
这个帖子我也看不懂,但是我要留个脚印。谢谢楼主的技术分享。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表