两点坐标间距离的算法以及验证【转】
东改西改改成了个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
两点坐标间距离的算法以及验证【转】相关推荐
- GPS坐标间距离计算
# -*- coding:utf-8 -*- # /usr/bin/pythonimport warnings warnings.filterwarnings("ignore") ...
- python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...
展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...
- C语言求空间两点之间的距离
定义一个表示三维空间点坐标的结构类型,通过函数求空间上任意两点之间的距离. 算法思想 空间内任意点的坐标有三个,分别为 x 轴方向.y 轴方向.z 轴方向,设定结构体 point,包括三个成员 x.y ...
- 计算两点间的距离,入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
题目描述 入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. 输入 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开. 输出 对于每组输入 ...
- 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
#include <stdio.h> #include <stdlib.h> //输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. #include< ...
- 计算两点间的距离——输入两点坐标(X1,Y1)、(X2,Y2),计算并输出两点间的距离
描述 输入两点坐标(X1,Y1).(X2,Y2),计算并输出两点间的距离. 提示: 求平方根的函数为:float sqrtf(float ); 需要加头文件:math.h 输入 输入数据只有一组,占一 ...
- 求解两点间最短路径的算法
最短路径算法 1.Dijkstra算法 2.Bellman-Ford算法 3.SPFA算法 4.Floyd算法 几种最短路径算法的对比 Dijkstra算法.Bellman-Ford算法和SPFA算法 ...
- c语言平曲线坐标,问题描述】给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。...
问题描述]给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数).要求求距离的运算单独放在一个函数中,然后在main函数中调用..[输入形式]输入两点的坐标(x1,y ...
- 本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离。
本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离. 函数接口定义: double dist( double x1, double y1, doub ...
最新文章
- pdf2htmlex linux 编译,如何安装编译pdf2htmlex实现pdf到html的格式转换功能
- 深入理解android卷II 即将发布
- vim中使用sed去除网上copy的源代码行号和空格
- 中兴通讯与北京交通大学、中国移动北京公司签署 “5G战略合作框架协议”
- SD2.0-课程等待时候的摘抄
- mysql导入 内存溢出_Solr Dataimporthandler 导入MySQL 内存溢出。
- KVM的安装和配置命令详解
- mongodb 批量插入_MongoDB批量插入– MongoDB插入很多
- 《寒江独钓》的作者教您如何高效阅读本书
- SpringBoot系列(3):SpringBoot2.1.x源码阅读环境搭建详解
- java 调用 easypr_EasyPR-Java项目maven版本所需jar包
- Qt 之 QToolBox
- JavaScript判断受访域名,调用不同的js文件
- windows7桌面计算机作用,win7系统虚拟桌面功能的详细教程
- 电脑上怎么看主板型号
- fanc 机器人_24个FANUC机器人的视觉功能详细介绍
- 箭头跳动动画效果和圆盘动画效果
- python 实现使用163邮箱发送有图片的邮件
- 整理了100个Python精选库,建议收藏
- 织梦模板之家:如何安装更换织梦cms模板