//米转地理距离度
private static double meterToDegree(double len){
double ra = Math.pow((Math.pow(len, -1)) * 111319.49079327358, -1);
retrun ra;
}
/**
* 通过经纬度获取距离(单位:米)
* @param lat1
* @param lng1
* @param lat2
* @param lng2
* @return 距离
*/
private static double getDistance(double lat1, double lng1, double lat2,
double lng2) {
double EARTH_RADIUS = 6378.137;
double radLat1 =lat1* Math.PI / 180.0;
double radLat2 =lat2* Math.PI / 180.0;
double radLng1 =lng1* Math.PI / 180.0;
double radLng2 =lng2* Math.PI / 180.0;
double a = radLat1 - radLat2;
double b = radLng1 - radLng2;
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 * 10000d) / 10000d;
s = s * 1000;
return s;
}
//经纬度转web墨卡托
function lonLat2WebMercator(lng,lat){
var x = lon * 20037508.34 / 180;
var ly = log(tan((90+lonLat.y)*PI/360))/(PI/180);
var y = ly *20037508.34/180;
var coords = [x,y];
return coords;
}
//web墨卡托转经纬度
function WebMercator2lonLat(x,y){
var lng = x/20037508.34*180;
var lata = y/20037508.34*180;
var lat = 180/PI*(2*atan(exp(lata*PI/180))-PI/2);
var lnlat = [lng,lat];
return lnglat;
}