им пытаются вычислить расстояние между двумя точками GPS запаслись в CSV файл .....вычисления расстояния между двумя точками CSV GPS с использованием Java
здесь является частью моего кода ... проблема в latitude2 и долготе Я не понял, как реализовать их с правильной долготой и широтой любой помощи, пожалуйста!
BufferedReader reader = new BufferedReader(new FileReader(file));
try {
/* First line of the data file is the header */
String line = reader.readLine();
System.out.println("Header: " + line);
boolean foundAnyRowHigherThan5 = false;
for (line = reader.readLine(); line != null; line = reader.readLine()) {
if (line.trim().length() > 0) { // skip blank lines
String tokens[] = line.split("\\,");
String name1 = tokens[0].trim();
String name2 = tokens[1].trim();
double latitude = Double.parseDouble(tokens[2]);
double longitude = Double.parseDouble(tokens[3]);
double latitude2 = latitude+?; // i dont know how to implement
double longitude2 = longitude+?; // i dont know how to implement them
String speedString = tokens[5].trim();
double dist = Double.parseDouble(tokens[4]);
float speedFloat = Float.parseFloat(speedString);
if(foundAnyRowHigherThan5 || speedFloat > 5.0) {
// a partir de ce point on ajoutera touts les points ,
if(!foundAnyRowHigherThan5) {
foundAnyRowHigherThan5 = true;
}
/* Longitude (= x coord) first ! */
Point point = geometryFactory.createPoint(new Coordinate(longitude, latitude));
featureBuilder.add(point);
double earthRadius = 6371; //kilometers
double dLat = Math.toRadians(latitude-latitude2);
double dLng = Math.toRadians(longitude-longitude2);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(latitude)) * Math.cos(Math.toRadians(latitude2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
dist = (double) (earthRadius * c);
featureBuilder.add(name1);
featureBuilder.add(name2);
featureBuilder.add(speedString);
featureBuilder.add(dist);
SimpleFeature feature = featureBuilder.buildFeature(null);
features.add(feature);
}
}
}
} finally {
reader.close();
}
Вы сказали, что вы хотите сравнить две GPS точки, но у вас есть только один в вашем коде? Широта и долгота объединены в одну точку gps. –
@Murat K благодарю вас за ответ ... в моем коде долгота и широта являются токенами из файлов csv более 2000 точек, но для вычисления расстояния у меня должна быть широта и широта нексста из следующей строки. не знаю, как его получить – reda
Так что в основном ваша проблема в том, что у вас нет следующей строки. Как насчет того, что вы просто сохраняете текущую широту/долготу и читаете следующую строку и сравниваете ее? –