Java реализует расчет расстояния между двумя точками широты и долготы и непосредственно загружает код.
Кода -копия выглядит следующим образом:
пакет com.jttx.poi.utils;
Импорт com.jttx.poi.entity.point;
/**
* Создано Луи на 2014/9/2.
*/
открытый класс Geoutils {
/**
* Рассчитайте расстояние между двумя точками широты и долготы (единица: метры)
* @param lng1 долгота
* @param lat1 широта
* @param lng2
* @param lat2
* @возвращаться
*/
Публичный статический двойной getDistance (двойной 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 * 6378137.0; // Возьмите радиус длины Земли в стандартном эталонном эллипсоиде WGS84 (Блок: M)
s = math.round (s * 10000) / 10000;
возврат S;
}
/**
* Рассчитайте значение TP
* @param curpoint текущая точка
* @param insulitypoint point offset point
* @param Isgeography, являются ли географические координаты ложными, является 2D координаты
* @return TP значение
*/
Публичный статический двойной getDirangle (точка curpoint, point invidentpoint, boolean isgeography) {
двойной результат = 0;
if (isgeography) {
Double y2 = math.toradians (indivepoint.getlat ());
Double y1 = math.toradians (curpoint.getlat ());
Double alpha = math.atan2 (indiendpoint.getlat () - curpoint.getlat (), (indiendpoint.getlng () - curpoint.getlng ()) * math.cos ((y2 - y1)/ 2)); // latido Направление, умноженное на cos (y2-y1/2)
Double delta = alpha <0? (2*Math.pi+Alpha): альфа;
result = math.todegrees (delta);
}еще {
double alpha = math.atan2 (indiendpoint.getlat () - curpoint.getlat (), indivepoint.getlng () - curpoint.getlng ());
Double delta = alpha <0? (2*Math.pi+Alpha): альфа;
result = math.todegrees (delta);
}
результат возврата;
}
public static void main (string [] args) {
System.out.println (getDistance (121.446014, 31.215937, 121.446028464238, 31.2158502442799));
}
}
Выше приведено в этой статье, надеюсь, вам понравится.