public static double calculateArea(List<LatLng> latLngs) {
if (latLngs != null && latLngs.size() >= 3) {
double area = 0.0D;
double ratio = 111319.49079327357D;
double coefficient = 0.017453292519943295D;
int size = latLngs.size();
for (int i = 0; i < size; ++i) {
LatLng p1 = latLngs.get(i);
LatLng p2 = latLngs.get((i + 1) % size);
double a1 = p1.longitude * ratio * Math.cos(p1.latitude * coefficient) * p2.latitude * ratio;
double a2 = p2.longitude * ratio * Math.cos(p2.latitude * coefficient) * p1.latitude * ratio;
area += a1 - a2;
}
return Math.abs((area / 2.0D));
} else {
return 0.0D;
}
}
JAVA 经纬度多边形计算面积
最新推荐文章于 2024-10-30 13:42:13 发布