- 浏览: 443166 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (355)
- Java (180)
- Jquery (18)
- Js (27)
- Mysql (3)
- Windows (6)
- C++ (1)
- Css (9)
- English (35)
- Sqlserver (1)
- Database (3)
- Git (1)
- Linux (5)
- Solr (1)
- Fun (5)
- C (2)
- Test (1)
- Math (2)
- Nlp (8)
- Algorithm (7)
- Regex (9)
- Other (5)
- Html (8)
- ASP (4)
- Access (2)
- Servlet (1)
- Lucene (3)
- Uml (2)
- Struts (19)
- Hibernate (5)
- Jstl (1)
- El (1)
- Python (1)
- SSH (2)
- Spring (1)
- Tomcat (4)
- Jsp (2)
- SE (1)
- Android (2)
- Excel (1)
- Ehcache (1)
- Flash (1)
- Pattern (1)
- Hadoop (1)
最新评论
-
huguyue1988:
怎么样可以判断访问的音乐加载完成了呢?我的界面要加载多个这个的 ...
jPlayer的一些用法 -
永不悔你:
[color=yellow][/c[*][img][/img] ...
MyEclipse 9.0运行速度优化 -
tianyalinfeng:
这个教程里都有吧
jquery 筛选器 -
mengfei86:
你太牛了,我找了半天的问题,你一句代码搞定了,谢了,id^, ...
jquery 筛选器
经纬度换算成米
纬度分为60分,每一分再分为60秒以及秒的小数。
纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。有相同特定纬度的所有位置都在同一个纬线上。
赤道的纬度为0°,将行星平分为南半球和北半球。
纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。
赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。
纬度1秒的长度
地球的子午线总长度大约40008km。平均:
纬度1度 = 大约111km
纬度1分 = 大约1.85km
纬度1秒 = 大约30.9m
根据地球上任意两点的经纬度计算两点间的距离
地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以0度经线为基 准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设第一点A的经 纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90- Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。那么根据三角推导,可以得到计算两点距离的如下公式:
C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)
Distance = R*Arccos(C)*Pi/180
这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile
如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲具有应用意义)的处理,那么公式将是:
C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)
Distance = R*Arccos(C)*Pi/180
以上通过简单的三角变换就可以推出。
如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:
C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
Distance = R*Arccos(C)*Pi/180
也就是:
C = sin(LatA/57.2958)*sin(LatB/57.2958) + cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)
Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.758349716768*Arccos(C) mile
在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然 后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所 计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。
public class DistanceUtil {
private static final double EARTH_RADIUS = 6378.137;
public static double getDistance(double lng1, double lat1, double lng2,
double lat2) {
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 * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000.0;
return s;
}
private static double rad(double d) {
return d * Math.PI / 180.0;
}
}
发表评论
-
新博开启
2013-10-17 11:29 603天涯临枫:http://www.tianyalinfeng ... -
使用FileUtils获取文件夹下所有指定文件
2013-09-23 11:42 1523org.apache.commons.io.FileUt ... -
hibernate去重复数据
2013-09-21 19:16 865DetachedCriteria dc = Detached ... -
ckeditor简单应用
2013-09-13 11:35 805准备 ckeditor前端源码ckeditor_4.2_f ... -
深度复制
2013-09-11 16:50 696浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而 ... -
Java的23中设计模式
2013-09-10 14:59 1106Java的23中设计模式 从这一块开始,我们详细介绍Jav ... -
设计模式的六大原则
2013-09-10 14:51 841设计模式的六大原则 1、开闭原则(Open Close ... -
heritrix-3.1.1简单使用
2013-09-06 16:43 9051.下载heritrix-3.1.1-dist.zip(此 ... -
web程序禁止访问指定文件
2013-09-04 13:26 732在web.xml中添加如下代码: <security ... -
iframe里取不到struts2 action里的值
2013-08-06 11:23 1135struts action里的属性值正常都是存放在reque ... -
struts2使用UrlRewriteFilter时报错
2013-07-29 11:18 630struts2使用UrlRewriteFilter时报错 ... -
java正则去掉所有html标签
2013-07-02 14:40 863public static String trimHtml( ... -
java类中获取classes文件夹路径
2013-07-02 14:20 992例如:Test.java 在Test中获取项目classe ... -
Ehcache配置
2013-07-01 15:41 818<defaultCache ... -
jsp中 <%! %> 和 <% %> 的区别
2013-05-22 15:35 579<%! int a = 0; %> 当js ... -
用递归实现查找最大值
2013-05-14 11:42 528private static int recursiveM ... -
常用正则表达式
2013-05-07 16:11 477/** * check mobile phone num ... -
中文转拼音
2013-05-02 15:35 436import net.sourceforge.pinyin4 ... -
java获取某一年某个节气日期
2013-04-27 15:43 1864private static String[] solar ... -
公历农历互相转换
2013-04-26 10:08 1025public class CalendarUtil { / ...
相关推荐
sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离
根据经纬度计算两点之间的距离,传输过来坐标点,直接计算两点之间的距离
在IT领域,根据经纬度计算距离是一个常见的地理信息系统(GIS)问题,主要应用于导航、位置服务、地图应用等。这个程序的功能是通过输入两个地点的经纬度坐标,得出它们之间的直线距离,通常以米为单位。以下是关于...
6. 文件处理:在“两点经纬度计算距离-输入地址得到经纬度”这个文件中,可能包含了将地址转换为经纬度的逻辑。这通常涉及调用地图API的地理编码服务,将街道地址解析为对应的经纬度坐标。 总之,从给定的标题和...
在IT领域,尤其是在地理信息系统(GIS)和导航应用中,经纬度计算距离是一个常见的需求。经纬度是地球坐标系统中的两个参数,分别表示地球表面某点的经度和纬度,用于精确定位地理位置。本篇文章将深入探讨如何利用...
### WGS84坐标系下计算两点间距离的知识点 #### 一、WGS84坐标系简介 WGS84(World Geodetic System 1984)是一种广泛应用于全球定位系统(GPS)中的地球参考框架。该坐标系采用了一个理想的地球模型——地球椭...
### 根据经纬度坐标计算实际两点距离 在地理信息系统(GIS)开发中,经常需要进行经纬度坐标之间的距离计算。此类计算对于导航系统、地图应用等有着重要的应用价值。本篇文章将详细介绍如何通过C/C++语言实现基于...
本篇将详细讲解如何利用这些信息来计算两点之间的距离。 首先,我们来看“WMM.COF”文件,这可能是世界磁模型(World Magnetic Model,简称WMM)的配置文件,用于描述地磁场的分布情况。在GPS定位和导航中,它有助...
3. **Haversine公式**:批量计算距离通常会用到Haversine公式,这是一种基于球面三角学的方法,用于计算地球上两点间的最短距离(大圆距离)。Haversine公式考虑了地球的半径,通过两个点的经纬度差来计算出它们之间...
为了计算两点之间的距离,我们需要了解地球坐标系的基本概念。地球坐标系是基于经度和纬度的坐标系。经度是指从本初子午线到某点的水平角距离,纬度是指某点与地球赤道面的夹角。 在计算两点之间的距离时,我们需要...
描述中重申了文章的核心内容,即通过具体的示例代码来详细说明如何用JavaScript根据给定的经纬度计算两点之间的距离。这一点对于任何需要进行地理信息系统(GIS)计算、物流配送、在线地图服务、旅行规划等应用领域...
已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。
经过两点之间经纬度计算直线距离,两种方法皆可用
根据经纬度距离和方位角计算新的经纬度,计算经纬度两点间距离
为了精确计算两点间的距离,我们需要考虑地球的曲率。国际上通常采用WGS84(World Geodetic System 1984)坐标系统,这是一种全球统一的参考框架,用于定位地表的任何位置。 计算两点间距离最基础的方法是Haversine...
这个名为“用经纬度计算两点距离软件”的程序显然就是针对这一需求设计的。经纬度是一种坐标系统,用于精确地定位地球上任何位置。下面将详细解释如何使用经纬度以及计算两点距离的数学原理。 首先,我们来理解一下...
在二维平面上,我们可以使用余弦定理来计算两点间的欧氏距离,但在地球上,需要使用哈弗辛公式(Haversine Formula): 哈弗辛公式如下: \[ a = \sin^2\left(\frac{\Delta \phi}{2}\right) + \cos(\phi_1) \cdot \...
1. **计算两点间距离**: 使用Haversine公式可以计算地球上任意两点间的直线距离(也称为大圆距离),这是基于球面三角学的。Haversine公式考虑了地球半径,并转换了经纬度的角度值。在Java代码中,这通常会涉及到...