CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  企业开发 >  地理信息系统

如何根据两个点的经纬度计算出这两个点的距离(以米为单位)

楼主supere(专心学习Dotnet)2003-11-04 20:47:56 在 企业开发 / 地理信息系统 提问

如何根据两个点的经纬度计算出这两个点的距离(以米为单位) 问题点数:20、回复次数:19Top

1 楼yfrzn(杨子)回复于 2003-11-05 11:55:22 得分 0

upTop

2 楼hant(阿水)回复于 2003-11-05 14:48:15 得分 2

自己编算法很麻烦,需要考虑投影坐标系参数等,要找本地理或测量的书对着公式写函数,  
  可以使用一些COM组件,如MO,MapX等都提供了两点求距的函数,方便,只需要提供特殊的投影坐标系,以及两点的经纬度就可以了,MO,精度高,MapX精度低Top

3 楼supere(专心学习Dotnet)回复于 2003-11-05 22:30:37 得分 0

有算法嘛?拜托各位大哥了!给个公式也可以Top

4 楼supere(专心学习Dotnet)回复于 2003-11-06 20:49:10 得分 0

tTop

5 楼redstar5(兴味索然)回复于 2003-11-07 14:07:21 得分 0

何必要用投影坐标系, 由地球半径和经纬度就行了,数学公式的大圆点距吗?Top

6 楼supere(专心学习Dotnet)回复于 2003-11-07 21:01:02 得分 0

请   redstar5(兴味索然)兄说具体点Top

7 楼skink(地图)回复于 2003-11-07 22:16:06 得分 0

要怎样计算呢,画在地图中,在将地图投影,两点就是米了Top

8 楼supere(专心学习Dotnet)回复于 2003-11-23 12:09:11 得分 0

tTop

9 楼redstar5(兴味索然)回复于 2003-12-02 13:05:09 得分 2

由经纬度就可以计算两点的大圆夹角了,数学公式吗  
  Top

10 楼zhaofuhong(SeeSea(看海))回复于 2003-12-03 10:39:25 得分 0

有经纬度LIKE不够啊,LIKE   还要有高程,地球LIKE是个三维空间哦^_^Top

11 楼gisbeibei()回复于 2003-12-06 12:57:57 得分 0

mapbasic   有个函数,但好像不是很精确!自己可以查查!Top

12 楼ZHYPDW(无奈)回复于 2003-12-09 11:18:22 得分 2

两点(经度1,纬度1)、(经度2,纬度2)  
  108   *   Sqr((经度2   -   经度1)   ^   2   +   (纬度2-纬度1)   ^   2)  
  单位:公里Top

13 楼leeky(雅痞·千年虫)回复于 2003-12-10 15:19:49 得分 2

mapX的函数为TMapX.Distance(....);  
  其实自己与很简单的,我就写了一些这方面的函数,包括把一条曲线缩放并旋转。  
  立体几何的问题而已。Top

14 楼lss983(随缘)回复于 2003-12-10 16:32:18 得分 2

MapX.Distance(dx,dy,dXpos,dYpos)*1.60934708788644;  
   
  单位公里Top

15 楼leeky(雅痞·千年虫)回复于 2003-12-11 22:11:47 得分 5

如果不用MapX,且这两点的距离不远,  
  我讲一下近似计算的思路(请注意以上前提):  
  首先我们假设地球比较规则,我们知其赤道直径与极直径,便可算出经线周长L1与赤道周长L2。  
  便可知道经线上一度(经线上一度即纬度差为一度)表示的长度R1,也知赤道上经度差一度的长度R2。  
  我们来解直角三角形:已知两点经纬度(X1,Y1)与(X2,Y2),即已知两直角边,  
  已知两点相差不大(至少在我们允许的范围),则Y1与Y2相差不大,  
  经度差=X1-X2,由于不在赤道上,换算成赤道上的差就是(X1-X2)*Cos((Y1+Y2)/2)  
  纬度差=Y1-Y2,  
  所以:  
  距离=SQRT(   SQR(R1*(Y1-Y2))+   SQR(R2*(X1-X2)*   Cos((Y1+Y2)/2))   )  
  以上SQR为平方,SQRT为平方根函数。请注意经度差要乘Cos()系数的!Top

16 楼leeky(雅痞·千年虫)回复于 2003-12-11 22:14:54 得分 0

lss983(随缘)   讲的不是很对,因为MapX本身可以设置单位的,你说的是在缺省状态下,其实设了单位就可直接得到距离。Top

17 楼leeky(雅痞·千年虫)回复于 2003-12-21 21:06:23 得分 5

楼主逃跑了啊?  
  放心,以后偶不答你的问题了。  
  前几天自己做一个地图基本功能的控件,已经完成了,计算距离的公司就是用的以上原理,我用自己的控件与MapX做了一下对比,误差很小,比如10米大约相关2cm,270米误差也是几厘米的样子。Top

18 楼shanmao(山猫)回复于 2003-12-22 11:02:30 得分 0

精确的算法是挺复杂的,读书时做过这个数学建模的作业,算了我好几天才把公式导出来。  
  你可以看看,老点的关于测量的书,有本苏联的,写的狠清楚  
  好像时   地球测量什么的Top

19 楼bachelor2001(无中生有)回复于 2003-12-23 17:19:25 得分 0

leeky,不知你的算法当斜率是0、22.5、45、67.5、90度时精度有没有变化,变化大不大,如果好的话,能提供一下你的算法吗?Top

相关问题

  • 如何计算不同经纬度两点之间的距离?
  • 如何根据两个点的坐标(经纬度)计算它们之间的距离?
  • 请问我知道两个点的经纬度值,如何计算实际的距离
  • 知道任意两点经纬度,如何求出两点的距离?
  • 求教根据两点经纬度得到球面距离算法?
  • 求教根据两点经纬度得到球面距离算法
  • 经纬度
  • 经纬度问题
  • 请问:经纬度与大地坐标转换问题
  • 经纬度搜索的问题,请高手指点!!

关键词

  • 函数
  • 算法
  • 经纬度
  • 经度
  • mapx
  • 纬度
  • 计算
  • 距离
  • 经线
  • 赤道

得分解答快速导航

  • 帖主:supere
  • hant
  • redstar5
  • ZHYPDW
  • leeky
  • lss983
  • leeky
  • leeky

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo