From ce5c34cb06967ea50e848c8ff25af39ff38a12c2 Mon Sep 17 00:00:00 2001 From: Didier Le Botlan Date: Tue, 12 Apr 2022 19:42:23 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20de=20:=20Distance=20renvoie=20NaN?= =?UTF-8?q?=20si=20les=20deux=20points=20sont=20=C3=A9gaux.=20(fix=20non?= =?UTF-8?q?=20test=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/insa/graphs/model/Point.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/be-graphes-model/src/main/java/org/insa/graphs/model/Point.java b/be-graphes-model/src/main/java/org/insa/graphs/model/Point.java index 82c6f57..39ca3b1 100644 --- a/be-graphes-model/src/main/java/org/insa/graphs/model/Point.java +++ b/be-graphes-model/src/main/java/org/insa/graphs/model/Point.java @@ -25,7 +25,15 @@ public final class Point { double cosLat = Math.cos(Math.toRadians(p1.getLatitude())) * Math.cos(Math.toRadians(p2.getLatitude())); double cosLong = Math.cos(Math.toRadians(p2.getLongitude() - p1.getLongitude())); - return EARTH_RADIUS * Math.acos(sinLat + cosLat * cosLong); + + double koef = sinLat + cosLat * cosLong ; + + if (koef >= 1.0) { koef = 1.0 ; } + if (koef <= -1.0) { koef = -1.0 ; } + + res = EARTH_RADIUS * Math.acos(koef) ; + + return res } // Longitude and latitude of the point.