半剛體的實現如下。不過,我仍然覺得應該有一些服務提供的谷歌地方API將有助於找到兩點之間的確切距離。如果有人知道然後pl讓我知道..截至目前Haversine是一個很好的替代品..
import java.lang.*;
import java.io.*;
import java.math.*;
public class DistanceCalculation {
public static void main(String[] args)
{
double lon11 =-97.116121;
double lat11=32.734642;
double lon22=-97.111658;
double lat22=32.731918;
// calculateDistance(lat11,lon11, lat22, lon22);
distFrom(lat11, lon11, lat22, lon22);
}
public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double sindLat = Math.sin(dLat/2);
double sindLng = Math.sin(dLng/2);
double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
* Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
System.out.println(dist);
return dist;
}
}
嗨Shridutt,謝謝你的回覆!我很感激!您提供的鏈接http://maps.googleapis.com/maps/api/distancematrix/xml?origins="+a+"&destinations="+b+"&mode=driving&language=en-EN&sensor=false with a = addressFrom ,b =地址T是否接受緯度經度值?我的應用程序將有2組值。一個緯度值對應於用戶位置和對應於結果集中所有列表的其他緯度值。使用這個網址將幫助我獲得距離?也是這個服務免費使用?請回復 – user1701593 2013-02-10 17:55:29
@ user1701593:您需要對此進行進一步的研發,因爲目前我不在這方面工作,但是在發佈代碼片段之前,我已經工作了很長時間... 對不起,但請注意upvote,如果我幫助...謝謝。 – 2013-02-10 18:02:03