根据经纬度求两点间距离实现源码(java)

http://www.blogjava.net/sinoly/archive/2007/01/22/95406.html

研究了一下GoogleMap上的根据经纬度求地球表面两点间距离的实现, 用java实现了一把,对我国境内的Beijing54, Xian80,WGS84三种坐标系的空间距离计算感觉这个实现是比较准确的。当然,这里只是个人的感觉而已。。。可能我还没有遇到那种对精度要求非常严格的地方,或许,本身我这个方式就是错误的。。。呵呵。。。这里只是作个记号先。。。各位达人多多指教

package com.geotools.test;

/**

*

* CopyRight (C)    All rights reserved.

*

* WuHan Inpoint Information Technology Development,Inc.

*

* Author sinoly

Project Name: PostGeo

*

* @version 1.0    2006-11-13

*

*

Base on : JDK1.5

*

*/

public class GeoUtils {

public enum GaussSphere{

Beijing54,

Xian80,

WGS84,

}

private static double Rad(double d){

return d * Math.PI / 180.0;

}

public double DistanceOfTwoPoints(double lng1,double lat1,double lng2,double lat2,

GaussSphere gs){

double radLat1 = Rad(lat1);

double radLat2 = Rad(lat2);

double a = radLat1 - radLat2;

double b = Rad(lng1) - Rad(lng2);

double s = 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 * (gs == GaussSphere.WGS84 ? 6378137.0 : (gs == GaussSphere.Xian80 ? 6378140.0 : 6378245.0));

s = Math.round(s * 10000) / 10000;

return s;

}

}

posted on 2007-01-22 20:38 sinoly

(#)

http://www.blogjava.net/sinoly/archive/2007/01/22/95406.html

研究了一下GoogleMap上的根据经纬度求地球表面两点间距离的实现, 用java实现了一把,对我国境内的Beijing54, Xian80,WGS84三种坐标系的空间距离计算感觉这个实现是比较准确的。当然,这里只是个人的感觉而已。。。可能我还没有遇到那种对精度要求非常严格的地方,或许,本身我这个方式就是错误的。。。呵呵。。。这里只是作个记号先。。。各位达人多多指教

package com.geotools.test;

/**

*

* CopyRight (C)    All rights reserved.

*

* WuHan Inpoint Information Technology Development,Inc.

*

* Author sinoly

Project Name: PostGeo

*

* @version 1.0    2006-11-13

*

*

Base on : JDK1.5

*

*/

public class GeoUtils {

public enum GaussSphere{

Beijing54,

Xian80,

WGS84,

}

private static double Rad(double d){

return d * Math.PI / 180.0;

}

public double DistanceOfTwoPoints(double lng1,double lat1,double lng2,double lat2,

GaussSphere gs){

double radLat1 = Rad(lat1);

double radLat2 = Rad(lat2);

double a = radLat1 - radLat2;

double b = Rad(lng1) - Rad(lng2);

double s = 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 * (gs == GaussSphere.WGS84 ? 6378137.0 : (gs == GaussSphere.Xian80 ? 6378140.0 : 6378245.0));

s = Math.round(s * 10000) / 10000;

return s;

}

}

posted on 2007-01-22 20:38 sinoly

(#)


相关文章

  • 计算机网络课程论文模板及选题
  • 武汉理工大学 计算机网络课程论文 题目作者学院专业学号指导教师 信息工程学院 电子信息工程 李方敏 二〇一五年 月 日 武汉理工大学信息工程学院课程论文诚信声明 本人声明:所呈交的课程论文,是本人在指导老师的指导下,独立开展工作所取得的成果 ...查看


  • 开题报告(格式-时间参考)
  • 北方民族大学毕业设计(论文) 开题报告书 题目 姓学专 名号业 丁红胜 指导教师 北方民族大学教务处制 北方民族大学毕业设计(论文) 开题报告书 姓学题 名号目 2012年12月30日 计算机科学课题性质毕业论文与工程学院 自拟/结合科研( ...查看


  • 面向对象程序实验报告撰写模板
  • 面向对象设计实验指导书 2015年9月 信息工程学院 侯向华 目录 实验一 熟悉java 的编程环境 . ................................................................... ...查看


  • AndroidPN源码分析(包含client和server)
  • 很久没有写笔记了,也没有分享了,关键是上班太累.做的东西太多.太杂,涉及的东西也多了,自己也很难抽出时间写写. 最近自己在做类似QQ那样的聊天程序,其中对消息的交互有两种方式,push和pull.下面就讲讲自己比较钟爱的android pu ...查看


  • 本科计算机论文题目
  • 基于asp 语言的测试项目 学生信息管理系统的设计与实现 基于ASP.NET 的社区人口管理系统 基于ASP.NET 的课程教学网站设计 公司会议网站 C#高校工资管理系统 C#在线点歌系统 <数据库原理>精品课程网站设计 教师 ...查看


  • 盘点2010年开源cms系统
  • 提起开源cms,大家第一想到的是php的cms,因为php开源的最早,也最为用户和站长们认可,随着各大cms系统的功能的不断完善和各式各样的开源cms的出现,.net和java的高端的cms系统也逐渐的走上了开源的路线,尤其是 .net的c ...查看


  • 高校教师管理系统
  • 课程设计说明书 课程名称:项目名称: 学 院: 专 业:班 级:姓 名:指导教师:完成时间: 信息系统分析与设计课程设计 高校教师管理系统 计算机工程学院 XXX XXX XXX XXX 2013年1月6日 目 录 摘 要......... ...查看


  • 西安工业大学计算机专业毕业论文
  • 本科毕业设计(论文) 题目:基于WEB的软件工程案例教学平台 ----交互演示子系统的设计 院 (系): 专 业: 班 级: 学 生: 学 号: 指导教师: 2016年06月 本科毕业设计(论文) 题目:基于WEB的软件工程案例教学平台 - ...查看


  • java中的回调机制(自己的一点理解)
  • ',1)"> 作为新手,不得不说学习是个艰难的过程.这几天一直在看关于回调机制方面的问题,经过几天的摸索,开始对android中的回调机制有了一点理解,下面做一个记录,有的是从别处借鉴过来的,有的是自己的一点理解,如有错误或 ...查看


热门内容