根据经纬度,坐标,计算两点之间的距离:
参数格式如下:每一个param的两个值之间用分号分割
@param1 positionone =aa.bbbb;cc.dddd
@param2 positionone =ee.bbbb;gg.dddd
public static double getdistance(string positionone, string positiontwo)
{
double long1;
double lat1;
double long2;
double lat2;
double distance = 0d;
if (positionone != null && positionone.length() > 0
&& positiontwo != null && positiontwo.length() > 0)
string positionarrayone[] = positionone.split(";");
string positionarraytwo[] = positiontwo.split(";");
try
long1 = double.parsedouble(positionarrayone[0]);
lat1 = double.parsedouble(positionarrayone[1]);
long2 = double.parsedouble(positionarraytwo[0]);
lat2 = double.parsedouble(positionarraytwo[1]);
if (long1 >= 0 && lat1 >= 0 && long2 >= 0 && lat2 >= 0)
double a, b, r;
r = 6378137; // 地球半径
lat1 = lat1 * math.pi / 180.0;
lat2 = lat2 * math.pi / 180.0;
a = lat1 - lat2;
b = (long1 - long2) * math.pi / 180.0;
double sa2, sb2;
sa2 = math.sin(a / 2.0);
sb2 = math.sin(b / 2.0);
distance = 2
* r
* math.asin(math.sqrt(sa2 * sa2 + math.cos(lat1)
* math.cos(lat2) * sb2 * sb2));
}
catch (exception e)
return distance;