我'试图测量两个坐标之间的距离,我已经实现了半正矢函数,就像这样:测量距离
package Services;
public class Route {
private double latitude1;
private double longitude1;
private double latitude2;
private double longitude2;
public Route(double latitude1, double longitude1, double latitude2, double longitude2) {
this.latitude1 = latitude1;
this.longitude1 = longitude1;
this.latitude2 = latitude2;
this.longitude2 = longitude2;
}
public double measureDistance() {
double earthRadius = 3958.75;
double dLat = Math.toRadians(latitude2-latitude1);
double dLng = Math.toRadians(longitude2-longitude1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(latitude1)) * Math.cos(Math.toRadians(latitude2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
return dist;
}
}
的代码工作正常,并ouputting东西。但是,当我使用半夏公式时,代码只是衡量天际线的距离,而不是道路,如果你知道我的意思。有没有什么可能的方式来衡量像谷歌地图的距离呢?没有使用谷歌地图API,suddly谷歌在一天之内2500 API调用后需要现金..
http://developer.mapquest.com/web/tools/getting-started/terms-overview检查mapquest出来,看起来很有希望。 – L7ColWinters 2012-02-19 13:37:15