如何将最后添加的元素传递给ArrayList,将ArrayList中的i元素传递给haversineDistance方法,如何在haversineDistance方法中从它们中获得lat1、lat2、long1和long2?
我想遍历列表,以确定请求的发送方是否位于列表中的一个元素附近。
考试班:
@Path("/test")
public class Test {
private static ArrayList<LatLong> latLongList = new ArrayList<>();
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response storeData(Data data) {
String macD = data.getMac();
int routeD = data.getRoute();
float latD = data.getLatitude();
float longD = data.getLongitude();
// Add the lat and Long to the ArrayList.
latLongList.add(new LatLong(latD, longD));
int size = latLongList.size();
if (size > 1) {
for (int i = 0; i < latLongList.size(); i++) {
double distance = haversineDistance(latLongList.get(i),
latLongList.get(latLongList.size() - 1));
if (distance > 4) {
processData(macD, routeD, latD, longD);
} else {
return null;
}
}
} else {
processData(macD, routeD, latD, longD);
}
return Response.status(201).build();
}
private void processData(String macD, int routeD, float latD, float longD) {
Database db = new Database();
db.insertData(macD, routeD, latD, longD);
}
private double haversineDistance(ArrayList<LatLong> x, ArrayList<LatLong> y) {
return 0;
}
}发布于 2015-05-04 17:04:14
如果您希望您的方法haversineDistance计算两点之间的距离,则应该设计该方法以接受两点,而不是2 of Point。由于点是由LatLong对象表示的,所以应该将方法更改为:
private double haversineDistance(LatLong x, LatLong y) {
double xLat = x.getLatitude();
double xLng = x.getLongitude();
double yLat = y.getLatitude();
double yLng = y.getLongitude();
// compute haversine distance
double d = ...;
return d;
}https://stackoverflow.com/questions/30035410
复制相似问题