我正在开展一个航运项目,其中应用程序绘制了前6个小时的多边形线,更新了特定船舶的纬度和长度信息。每当我完成这个我的谷歌地图相机应该移动到那些纬度和长度的中点。那时我才能给出精确的地图相机视图。
我的问题是我找不到几个lat和long的中点。
我尝试了下面的代码它只返回2 lat和long的中点,它开始并完成lat和long。
public static LatLng midPoint(double lat1,double lon1,double lat2,double lon2){
double dLon = Math.toRadians(lon2 - lon1);
//convert to radians
lat1 = Math.toRadians(lat1);
lat2 = Math.toRadians(lat2);
lon1 = Math.toRadians(lon1);
double Bx = Math.cos(lat2) * Math.cos(dLon);
double By = Math.cos(lat2) * Math.sin(dLon);
double lat3 = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt((Math.cos(lat1) + Bx) * (Math.cos(lat1) + Bx) + By * By));
double lon3 = lon1 + Math.atan2(By, Math.cos(lat1) + Bx);
LatLng latLng = new LatLng(Math.toDegrees(lat3),Math.toDegrees(lon3));
return latLng;
// System.out.println(Math.toDegrees(lat3)+""+ Math.toDegrees(lon3));
}
我需要找到所有lat和long的中点,它们都用于绘制多边形线。
任何人都可以帮助我们。
提前致谢。