当前位置:首页 > 开发 > 互联网 > 正文

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

发表于: 2015-07-19   作者:roadrunners   来源:转载   浏览:
摘要: 要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。 /** * * @param longitudeA * 经度A点 * @param latitudeA * 纬度A点 * @param longitudeB *

要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。

	/**
	 * 
	 * @param longitudeA
	 *            经度A点
	 * @param latitudeA
	 *            纬度A点
	 * @param longitudeB
	 *            经度B点
	 * @param latitudeB
	 *            纬度B点
	 * @return 返回两点之间的距离,单位为米,可以根据使用场景自由换算
	 */
	public static double getDistance(double longitudeA, double latitudeA, double longitudeB, double latitudeB) {
		// 地球半径(千米),地球半径分为:极半径、赤道半径、平均半径,我们使用平均半径
		double R = 6371.393;
		double C = Math.sin(Math.toRadians(latitudeA)) * Math.sin(Math.toRadians(latitudeB)) + Math.cos(Math.toRadians(latitudeA)) * Math.cos(Math.toRadians(latitudeB)) * Math.cos(Math.toRadians(longitudeA - longitudeB));
		return (R * Math.acos(C)) * 1000;
	}

 

Demo:

		double longitudeA = 106.486654;
		double latitudeA = 29.490295;
		double longitudeB = 106.581515;
		double latitudeB = 29.615467;

		System.out.println(getDistance(longitudeA, latitudeA, longitudeB, latitudeB));

 

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
基本假设和概念: 地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米
经纬度简介 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和
这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的
/* *Copyright (c)2013,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:孙
最近在Android上做GPS的东西,获取经纬度、计算距离、方位角,感觉在搞GIS样。当然,玩笑了,玩玩而
最近在Android上做GPS的东西,获取经纬度、计算距离、方位角,感觉在搞GIS样。当然,玩笑了,玩玩而
/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值
/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值
场景:已知两个GPS点的经纬度坐标信息。计算两点的距离。 1. 距离/纬度关系 GPS: 22.514519,113.38
地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.00
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号