我需要计算2个(点)纬度和经度之间的距离,一个点在数组中,另一点作为参数发送。计算出的距离应存储在另一个数组中,以便我可以计算一个数组中的最小距离。问题是无法将计算出的距离存储到数组中,因此请帮我一下。
@Override
public MinimumDistanceModel getMinimumDistance(double latitude, double longitude) throws Exception {
try {
double lon1 = longitude;
double lat1 = latitude;
List<MinimumDistanceDomain> minDistDomain = minimumDistanceDAO.getFranchiseDetails();
for(MinimumDistanceDomain minimumDistanceDomain : minDistDomain) {
double lat2 = minimumDistanceDomain.getLatitude();
double lon2 = minimumDistanceDomain.getLongitude();
MinimumDistanceModel minimumDistanceModel = new MinimumDistanceModel();
minimumDistanceModel.setDistance1(CommonUtils.distance(lat1, lat2, lon1, lon2));
System.out.println(minimumDistanceModel.getDistance1());
Double distance = minimumDistanceModel.getDistance1();
}
} catch (Exception e) {
logger.info("Exception getMinimumDistance in DistanceServiceImpl" + e.getMessage());
}
return null;
}
`
上面代码的结果:它只是打印这两个点之间的距离,我该如何在数组中返回这些距离
答案 0 :(得分:0)
下面的代码将为每次迭代分配一个值,基本上我要说的是,由于您有纬度和经度,因此您可以在每次迭代内进行计算以获取距离,而不是使用通用utils。关键行是这个testArray[i]=i;
var lat ;
var long;
var distance;
int[] testDistanceArray = new int[50];
for (int i = 0; i < testDistanceArray.length; i++) {
testDistanceArray[i]= lat -long ;
distance = testDistanceArray[i]
// that will give you the distance for each iteration
}