看了通过两个点的经纬度计算距离这篇,据说是Google里扒来的算法,于是决定验证一下。
东改西改改成了个VB的代码,通过计算发现非常正确。
用30,120和31,121两个坐标点进行验证,同Mapinfo中计算的结果非常的相近。
后来又把坐标系直接当成直角坐标系来计算,发现误差很大。
于是仍然用直角坐标系方法来计算,给纬度加上了个0.86的参数,这样计算下来和结果相近。
不上传文件了,直接贴代码了。代码如下:(五个TEXT,三个Button)


Const EARTH_RADIUS = 6378.137
Const Pi = 3.1415926535898

Function rad(ByVal d As Double) As Double
rad = d * Pi / 180
End Function

Function GetDistance(lat1 As Double, lng1 As Double, lat2 As Double, lng2 As Double) As Double
Dim radlat1 As Double, radlat2 As Double
Dim a As Double, b As Double, s As Double, Temp As Double
radlat1 = rad(lat1)
radlat2 = rad(lat2)
a = radlat1 - radlat2
b = rad(lng1) - rad(lng2)
Temp = Sqr(Sin(a / 2) ^ 2 + Cos(radlat1) * Cos(radlat2) * Sin(b / 2) ^ 2)
s = 2 * Atn(Temp / Sqr(-Temp * Temp + 1))     '没有反正弦函数,网上找了个
s = s * EARTH_RADIUS
GetDistance = s
End Function

Private Sub Command1_Click()
Text5.Text = Str(GetDistance(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text)))
End Sub

Private Sub Command2_Click()
Text5.Text = Str((Sqr((Val(Text3.Text) - Val(Text1.Text)) ^ 2 + (Val(Text4.Text) - Val(Text2.Text)) ^ 2)) * 111.3199338)
End Sub

Private Sub Command3_Click()
Text5.Text = Str((Sqr((Val(Text3.Text) * 0.86 - Val(Text1.Text) * 0.86) ^ 2 + (Val(Text4.Text) - Val(Text2.Text)) ^ 2)) * 111.3199338)
End Sub

转载于:https://www.cnblogs.com/zhuor/archive/2011/07/21/2113250.html

两点坐标间距离的算法以及验证【转】相关推荐

  1. GPS坐标间距离计算

    # -*- coding:utf-8 -*- # /usr/bin/pythonimport warnings warnings.filterwarnings("ignore") ...

  2. python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...

    展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...

  3. C语言求空间两点之间的距离

    定义一个表示三维空间点坐标的结构类型,通过函数求空间上任意两点之间的距离. 算法思想 空间内任意点的坐标有三个,分别为 x 轴方向.y 轴方向.z 轴方向,设定结构体 point,包括三个成员 x.y ...

  4. 计算两点间的距离,入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

    题目描述 入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. 输入 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开. 输出 对于每组输入 ...

  5. 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

    #include <stdio.h> #include <stdlib.h> //输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. #include< ...

  6. 计算两点间的距离——输入两点坐标(X1,Y1)、(X2,Y2),计算并输出两点间的距离

    描述 输入两点坐标(X1,Y1).(X2,Y2),计算并输出两点间的距离. 提示: 求平方根的函数为:float sqrtf(float ); 需要加头文件:math.h 输入 输入数据只有一组,占一 ...

  7. 求解两点间最短路径的算法

    最短路径算法 1.Dijkstra算法 2.Bellman-Ford算法 3.SPFA算法 4.Floyd算法 几种最短路径算法的对比 Dijkstra算法.Bellman-Ford算法和SPFA算法 ...

  8. c语言平曲线坐标,问题描述】给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。...

    问题描述]给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数).要求求距离的运算单独放在一个函数中,然后在main函数中调用..[输入形式]输入两点的坐标(x1,y ...

  9. 本题要求实现一个函数,对给定平面任意两点坐标(x1​,y1​)和(x2​,y2​),求这两点之间的距离。

    本题要求实现一个函数,对给定平面任意两点坐标(x1​,y1​)和(x2​,y2​),求这两点之间的距离. 函数接口定义: double dist( double x1, double y1, doub ...

最新文章

  1. pdf2htmlex linux 编译,如何安装编译pdf2htmlex实现pdf到html的格式转换功能
  2. 深入理解android卷II 即将发布
  3. vim中使用sed去除网上copy的源代码行号和空格
  4. 中兴通讯与北京交通大学、中国移动北京公司签署 “5G战略合作框架协议”
  5. SD2.0-课程等待时候的摘抄
  6. mysql导入 内存溢出_Solr Dataimporthandler 导入MySQL 内存溢出。
  7. KVM的安装和配置命令详解
  8. mongodb 批量插入_MongoDB批量插入– MongoDB插入很多
  9. 《寒江独钓》的作者教您如何高效阅读本书
  10. SpringBoot系列(3):SpringBoot2.1.x源码阅读环境搭建详解
  11. java 调用 easypr_EasyPR-Java项目maven版本所需jar包
  12. Qt 之 QToolBox
  13. JavaScript判断受访域名,调用不同的js文件
  14. windows7桌面计算机作用,win7系统虚拟桌面功能的详细教程
  15. 电脑上怎么看主板型号
  16. fanc 机器人_24个FANUC机器人的视觉功能详细介绍
  17. 箭头跳动动画效果和圆盘动画效果
  18. python 实现使用163邮箱发送有图片的邮件
  19. 整理了100个Python精选库,建议收藏
  20. 织梦模板之家:如何安装更换织梦cms模板

热门文章

  1. u-boot中添加自定义命令
  2. Oracle 字符串函数
  3. 3.11 时间处理对象
  4. java错误页面显示错误信息_Struts2在JSP页面中显示错误信息和提示信息的方法
  5. 手把手教你将pyqt程序打包成exe(1)
  6. 1814: 一元三次方程求解
  7. SIGMOD回顾:数据库国际大咖组团来阿里,他们都说了啥?
  8. 内核空间镜像攻击揭秘:ARM 硬件特性,竟能开启安卓8终端的上帝模式?
  9. 设计总结:腾讯光子《和平精英》全新UI 2.0如何升级至效果拉满?
  10. 弈剑行:几经曲折却遇开服宕机,克服困难单机上线,他们不妥协