java版のGoogleの地図は2緯度の座標点の距離を計算します。


球面の二点の間の大きな円弧の距離
public class GoogleMapHelper {

	private static double EARTH_RADIUS = 6378.137;	//    
	//                        Math.toRadians
	private static double rad(double d)
	{
	    return d * Math.PI / 180.0;
	}

	/**
	 *               
	 * @param lng1	  1
	 * @param lat1	  1
	 * @param lng2	  2
	 * @param lat2	  2
	 * @return   (  )
	 */
	public static double getDistance(double lng1, double lat1, double lng2, double lat2)
	{
	    double radLat1 = Math.toRadians(lat1);
	    double radLat2 = Math.toRadians(lat2);
	    double a = radLat1 - radLat2;
	    double b = Math.toRadians(lng1) - Math.toRadians(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;
	    return s;
	}
	
	public static void main(String[] args) {
		long b = System.currentTimeMillis();
		for(int i=0; i<1000000; i++){
			getDistance(116.403933,39.914147, 116.403237,39.927919);
		}
		System.out.println("  :"+(System.currentTimeMillis()-b)+"  "); //  :461  
		double dist = getDistance(116.403933,39.914147, 116.403237,39.927919);
		System.out.println("    :" + dist + "  ");	//    :1.0  

	}
}
 
js版のGoogleの地図は2緯度の座標点の距離を計算します。
http://happyqing.iteye.com/blog/2236105
 
参考:
球面の上で2時の間の距離のは法を求めますhttp://wenku.baidu.com/link?url=kWYaVUDABbteHXWvbHiJQTddK0J8R06cHzheHtHgTcgx7ISmF7UZ-JwBVgI 73 m 1 BUgz 8 Xlr 9 kPl 5 OWlVkJl 9 nPUhc 4 YuZyDwJUnKZLE NTW
二点間の球面距離の公式http://blog.163.com/scuqifuguang@126/blog/static/17370086127114939980/
二つの経緯度の間の距離を計算します。http://blog.csdn.net/musicrabbit/article/details/6717852
2つの緯度点から、この2つの緯度点間の距離を計算します。http://www.cnblogs.com/softfair/p/distance_of_twolatitude_and_longitude_points.
球面の任意の2点間の距離計算式は、ウィキペディアの次の文章を参照することができます。
  • Great-circele distance
  • Haversine formula
  • 特に、ウィキペディアがHaversine公式を推奨しているのは、Great-circele distance公式が多くのコサイン関数を使用しているためであり、2つの距離が短い場合(例えば、地球の表面から数百メートル離れている2点)、コサイン関数が0.999...の結果として、大きな捨て値誤差が生じるからである。Haversine公式は正弦関数を採用しています。距離が小さくても十分な有効数字を維持できます。以前は三角関数表を使って計算していたが、実際に検証して計算すると、二つの公式の違いは大きくない。確かにするために、ここではやはりHaversine式を採用します。