我有一个 Geopoint,它是用户的当前位置。我知道它的纬度和经度。我想在用户位置周围得到一个 50 公里的正方形周长,所以我需要知道 java 中给定点周围的最小和最大纬度以及最小和最大经度是多少。有人可以帮我解决这个问题吗?提前致谢 ?
问问题
1410 次
1 回答
3
刚刚找到解决方案。如果你有一个给定的点 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);
真正的答案就在这里:感谢真正的回答者
于 2016-02-05T10:43:23.453 回答