Android 如何从中心点获取纬度、经度最大值和最小值

Android 如何从中心点获取纬度、经度最大值和最小值,android,google-maps,geographic-distance,Android,Google Maps,Geographic Distance,我有一个地理点,它是用户的当前位置。我知道它的纬度和经度。我想在用户位置周围得到一个50公里的正方形周长,所以我需要知道在java中给定点周围的最小和最大纬度以及最小和最大经度是多少。 有人能帮我吗? 提前谢谢 刚刚找到了解决办法。如果你有一个给定的点P(lat,long)。 例如,若你们需要在方圆周长50公里的范围内,你们需要考虑地球半径。下面是如何做到这一点: double R = 6371; // earth radius in km double radius = 50; // km d

我有一个地理点,它是用户的当前位置。我知道它的纬度和经度。我想在用户位置周围得到一个50公里的正方形周长,所以我需要知道在java中给定点周围的最小和最大纬度以及最小和最大经度是多少。 有人能帮我吗?
提前谢谢

刚刚找到了解决办法。如果你有一个给定的点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);

真正的答案是:

刚刚找到了解决方案。如果你有一个给定的点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);

真正的答案是:

要获得更通用的解决方案,您可以使用Google Maps Android API实用程序库()中的
SphericalUtil.computeOffset()
方法()。您可以查看GitHub上的代码:要获得更通用的解决方案,您可以使用Google Maps Android API实用程序库()中的
SphereCaltil.computeOffset()
方法()。您可以查看GitHub上的代码: