2016-02-05 5 views
0

У меня есть Geopoint, который является текущей позицией пользователя. Я знаю его широту и долготу. Я хотел бы получить квадратный периметр 50 км вокруг позиции пользователя, поэтому мне нужно знать, какова минимальная широта и минимальная & максимальная долгота вокруг этой заданной точки, в java. Может кто-то помогает мне с этим? Заранее спасибо?Как получить широту, долготу максимум и минимум от центральной точки

ответ

2

Только что нашел решение. Если у вас есть точка P (lat, long). Если вам нужно получить, например, 50 км по периметру, например, радиус Земли. Ниже, как это сделать:

double R = 6371; // earth radius in km 
double radius = 50; // km 
double latMin = lon - Math.toDegrees(radius/R/Math.cos(Math.toRadians(lat))); 
double latMax = lon + Math.toDegrees(radius/R/Math.cos(Math.toRadians(lat))); 
double longMax = lat + Math.toDegrees(radius/R); 
double longMin = lat - Math.toDegrees(radius/R); 

Реальный ответ здесь: credit to the real answerer

+0

Для более общего решения можно использовать SphericalUtil.computeOffset) 'метод' ((http://googlemaps.github.io /android-maps-utils/javadoc/com/google/maps/android/SphericalUtil.html#computeOffset-LatLng-double-double-) из Утилиты Google API Android API (https://developers.google.com/maps/документация/Android-API/полезности /). Вы можете посмотреть код на GitHub: https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java – antonio

Смежные вопросы