`
zzc1684
  • 浏览: 1220965 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java 两个百度经纬度坐标点,计算两点距离

阅读更多
package com.ejianf.utils;

/**
 * 类名称:PointToDistance    
 * 类描述:两个百度经纬度坐标点,计算两点距离
 * 创建人:钟志铖    
 * 创建时间:2014-9-7 上午10:14:01    
 * 修改人:
 * 修改时间:
 * 修改备注:    
 * 版本信息:1.0  
 * 联系:QQ:433647
 */
public class PointToDistance {

	public static void main(String[] args) {
		getDistanceFromTwoPoints(23.5539530, 114.8903920, 23.5554550, 114.8868890);
		
		distanceOfTwoPoints(23.5539530, 114.8903920, 23.5554550, 114.8868890);
	}
	
	private static final Double PI = Math.PI;

	private static final Double PK = 180 / PI;
	
	/**
	 * @Description: 第一种方法
	 * @param lat_a
	 * @param lng_a
	 * @param lat_b
	 * @param lng_b
	 * @param @return   
	 * @return double
	 * @author 钟志铖
	 * @date 2014-9-7 上午10:11:35
	 */
	public static double getDistanceFromTwoPoints(double lat_a, double lng_a, double lat_b, double lng_b) {
		double t1 = Math.cos(lat_a / PK) * Math.cos(lng_a / PK) * Math.cos(lat_b / PK) * Math.cos(lng_b / PK);
		double t2 = Math.cos(lat_a / PK) * Math.sin(lng_a / PK) * Math.cos(lat_b / PK) * Math.sin(lng_b / PK);
		double t3 = Math.sin(lat_a / PK) * Math.sin(lat_b / PK);

		double tt = Math.acos(t1 + t2 + t3);

		System.out.println("两点间的距离:" + 6366000 * tt + " 米");
		return 6366000 * tt;
	}

	
	/********************************************************************************************************/
	// 地球半径
	private static final double EARTH_RADIUS = 6370996.81;

	// 弧度
	private static double radian(double d) {
		return d * Math.PI / 180.0;
	}

	/**
	 * @Description: 第二种方法
	 * @param lat1
	 * @param lng1
	 * @param lat2
	 * @param lng2   
	 * @return void
	 * @author 钟志铖
	 * @date 2014-9-7 上午10:11:55
	 */
	public static void distanceOfTwoPoints(double lat1, double lng1, double lat2, double lng2) {
		double radLat1 = radian(lat1);
		double radLat2 = radian(lat2);
		double a = radLat1 - radLat2;
		double b = radian(lng1) - radian(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;
		double ss = s * 1.0936132983377;
		System.out.println("两点间的距离是:" + s + "米" + "," + (int) ss + "码");
	}
}

 

分享到:
评论

相关推荐

    java根据两点经纬度计算距离

    在Java编程中,根据两点的经纬度来计算距离是一项常见的任务,特别是在地理信息系统(GIS)或者定位服务相关的应用中。这个任务通常涉及到地球表面的距离计算,因为经纬度是地球坐标系统的一部分。以下是一些相关的...

    Java计算两个经纬度点之间距离算法

    Java计算两个经纬度点之间距离(以米为单位)算法, 纯Java代码, 可供参考。 在具体项目中使用过。

    计算两个经纬度之间的距离Java

    "计算两个经纬度之间的距离Java"这个主题,涉及到地理坐标系统、Haversine公式以及高德地图API的运用。 首先,我们需要了解地理坐标系统。地球被抽象为一个球体,每个位置由经度和纬度来唯一标识。经度是从本初子午...

    java计算两个经纬度之间的距离

    在Java编程中,计算两个经纬度之间的距离通常涉及到地理坐标系统的知识,主要使用Haversine公式或者Spherical Law of Cosines。Haversine公式适用于球面几何,它能计算地球上两点之间的大圆距离,而Spherical Law of...

    经纬度计算距离、方位角等java源码

    在"Caculate.java"源码中,我们可以预见到这样的函数:一个接受两个点的经纬度作为参数,返回它们之间的距离;另一个可能接受一个点的经纬度、距离和方位角,计算出第二个点的经纬度。 在实际应用中,这些计算可能...

    Java 计算两个GPS坐标点之间的距离.txt

    JAVA 计算两个经纬度关系计算 - FALCON - 斑驳的蓝调 1. Lat1 Lung1 表示A点经纬度,Lat2 Lung2 表示B点经纬度; 2. a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点经度之差; 3. 6378.137为地球半径,...

    通过两点经纬度,计算他们之间的距离 - JAVA

    哈弗辛公式的基本思路是将地球视为一个完美的球体,然后利用经纬度坐标来计算两点之间的弧度距离,再将其转换为实际的公里或英里。公式如下: \[ a = \sin^2\left(\frac{\Delta \phi}{2}\right) + \cos(\phi_1) \...

    WGS84坐标下根据经纬度计算两点之间的距离

    - `p1` 和 `p2` 分别表示两个点的经纬度坐标,其中 `x` 表示经度,`y` 表示纬度。 - `Ri` 定义了地球的平均半径,这里取值为6371千米,即6,371,000米。 2. **核心算法**: - 使用`Math.acos()`函数来计算余弦值...

    百度墨卡托坐标转百度经纬度离线实现(源码)

    这里我们关注的是百度地图坐标系的转换,特别是如何将百度的墨卡托坐标转换为百度经纬度坐标。百度地图使用了自己的坐标系统,不同于常见的WGS84坐标系统,因此在进行地图数据处理时,这种转换是必要的。 首先,...

    已知一点坐标和经纬度求其它经纬度坐标或相应坐标经纬度

    经纬度坐标系统使用两个角度来定义地球表面上任意一点的位置:经度(Longitude)和纬度(Latitude)。 - **纬度**:范围从 -90° 到 +90°,其中0°代表赤道,+90°代表北极点,-90°代表南极点。 - **经度**:范围...

    Android-依据两点间经纬度坐标,计算两点间距离

    根据提供的文件信息,本文将详细解释如何在Android应用开发中基于两点间的经纬度坐标来计算这两点之间的地理距离。此方法对于实现地图定位、路线规划等功能具有重要意义。 ### 核心概念 #### 地理坐标系统 地球...

    mysql函数-根据经纬度坐标计算距离

    本篇文章将详细介绍如何利用MySQL的内置函数和数学公式来计算两个经纬度坐标点之间的距离。 首先,我们需要了解地球上两点之间的距离计算方法。在地球表面上,两点间的最短距离是大圆航线(Great Circle Distance)...

    全国355个城市的经纬度坐标位置

    全国355个城市的经纬度坐标位置数据是一个重要的地理信息资源,对于开发地图应用、数据分析、定位服务等具有广泛的应用价值。这个数据集包含了中国所有地级市的精确经纬度信息,可以方便开发者直接集成到他们的项目...

    根据两点坐标求算距离方位角

    从事测量或道桥行业的人经常会遇到根据GPS大地坐标求算两点间的距离和方位角,计算并不难,只是比较繁琐。这个小工具是用EXCEL编写的,输入两点的横纵坐标及坡度,即可求出两点的距离和方位角。由于需要频繁地输入...

    Java通过经纬度坐标获取两个点之间的直线距离的示例

    本文主要介绍了Java通过经纬度坐标获取两个点之间的直线距离的示例,通过示例代码详细介绍了计算两个点之间的直线距离的方法,对大家的学习或者工作具有一定的参考学习价值。 一、经纬度坐标获取两个点之间的直线...

    计算距离的工具类

    计算距离的工具类计算距离的工具类计算距离的工具类计算距离的工具类计算距离的工具类

    java计算两个坐标之间的距离.zip

    在Java编程中,计算两个地理坐标点之间的距离通常涉及到地理坐标系中的经纬度转换和距离公式的应用。这个压缩包文件“java计算两个坐标之间的距离.zip”显然包含了一个Java程序,该程序用于根据两个坐标点的经纬度...

    Java版_经纬度两点间距离计算(LngLat)

    此示例调用 `distanceByLngLat` 方法,传入昆明附近两个点的经纬度坐标,输出两点之间的距离。 #### 实际应用与扩展 1. **精度考虑**:在实际应用中,地球并不是一个完美的球体,因此该方法计算出的距离存在一定的...

    hive-udf(两地址间距离计算+省市区位置解析(Java代码))

    在Java中,我们可以定义一个函数,接收两个经纬度对(纬度和经度),然后应用Haversine公式计算它们之间的弧度距离,最后将其转换为公里或英里。这个过程涉及到一些数学运算,例如弧度转换、正弦和余弦函数的使用。 ...

    arcgis经纬度坐标的shape面层计算面积的详细步骤

    在GIS(地理信息系统)中,计算经纬度坐标系下的shape面层面积是一项常见的任务,尤其在处理地理数据时。以下是一份详细的步骤指南,用于在ArcGIS中进行此类计算: 首先,我们需要对shape面层进行坐标系统定义。这...

Global site tag (gtag.js) - Google Analytics