mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
add great circle costs
This commit is contained in:
parent
fa7e942ad7
commit
843bd18be2
2 changed files with 19 additions and 3 deletions
|
|
@ -42,7 +42,7 @@ public class GreatCircleDistanceCalculator {
|
|||
* @param coord2 - to coord
|
||||
* @return great circle distance
|
||||
*/
|
||||
public static double calculateDistance(Coordinate coord1, Coordinate coord2, DistanceUnit unit){
|
||||
public static double calculateDistance(Coordinate coord1, Coordinate coord2, DistanceUnit distanceUnit){
|
||||
double lon1 = coord1.getX();
|
||||
double lon2 = coord2.getX();
|
||||
double lat1 = coord1.getY();
|
||||
|
|
@ -56,7 +56,7 @@ public class GreatCircleDistanceCalculator {
|
|||
double a = Math.sin(delta_Lat / 2) * Math.sin(delta_Lat / 2) + Math.sin(delta_Lon / 2) * Math.sin(delta_Lon / 2) * Math.cos(lat1) * Math.cos(lat2);
|
||||
double c = 2 * Math.asin(Math.sqrt(a));
|
||||
double distance = R * c;
|
||||
if(unit.equals(DistanceUnit.Meter)){
|
||||
if(distanceUnit.equals(DistanceUnit.Meter)){
|
||||
distance = distance * 1000.;
|
||||
}
|
||||
return distance;
|
||||
|
|
|
|||
|
|
@ -35,10 +35,26 @@ public class GreatCircleDistanceCalculatorTest {
|
|||
|
||||
double greatCircle = GreatCircleDistanceCalculator.calculateDistance(
|
||||
Coordinate.newInstance(lon1,lat1),
|
||||
Coordinate.newInstance(lon2,lat2)
|
||||
Coordinate.newInstance(lon2,lat2),
|
||||
GreatCircleDistanceCalculator.DistanceUnit.Kilometer
|
||||
);
|
||||
Assert.assertEquals(600,greatCircle,30.);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMeter(){
|
||||
double lon1 = 8.3858333;
|
||||
double lat1 = 49.0047222;
|
||||
|
||||
double lon2 = 12.1333333;
|
||||
double lat2 = 54.0833333;
|
||||
|
||||
double greatCircle = GreatCircleDistanceCalculator.calculateDistance(
|
||||
Coordinate.newInstance(lon1,lat1),
|
||||
Coordinate.newInstance(lon2,lat2),
|
||||
GreatCircleDistanceCalculator.DistanceUnit.Meter
|
||||
);
|
||||
Assert.assertEquals(600000,greatCircle,30000.);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue