summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ludovic Barman <ludovicb@google.com> 2025-01-09 09:35:08 -0800
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2025-01-09 09:35:08 -0800
commit0928cdfeced0242ea702e42e8f95e4e3e9c53664 (patch)
tree865b874248efba35b87619a0820a5f6523bdd159
parentb55dba6fc11f40995401894de4854ab55719f225 (diff)
parenta31ee7bbeca5ff2c0c8380863f894c6df12c3c8b (diff)
Merge "LocationFudger: Avoid division by zero" into main am: 55f4c22026 am: a31ee7bbec
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3440041 Change-Id: I28eee9b002e3502bc9c1d2deb3980f6edca875c0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/location/fudger/LocationFudger.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/location/fudger/LocationFudger.java b/services/core/java/com/android/server/location/fudger/LocationFudger.java
index 27577641ad1d..28e21b71dcc9 100644
--- a/services/core/java/com/android/server/location/fudger/LocationFudger.java
+++ b/services/core/java/com/android/server/location/fudger/LocationFudger.java
@@ -302,6 +302,15 @@ public class LocationFudger {
// requires latitude since longitudinal distances change with distance from equator.
private static double metersToDegreesLongitude(double distance, double lat) {
- return distance / APPROXIMATE_METERS_PER_DEGREE_AT_EQUATOR / Math.cos(Math.toRadians(lat));
+ // Needed to convert from longitude distance to longitude degree.
+ // X meters near the poles is more degrees than at the equator.
+ double cosLat = Math.cos(Math.toRadians(lat));
+ // If we are right on top of the pole, the degree is always 0.
+ // We return a very small value instead to avoid divide by zero errors
+ // later on.
+ if (cosLat == 0.0) {
+ return 0.0001;
+ }
+ return distance / APPROXIMATE_METERS_PER_DEGREE_AT_EQUATOR / cosLat;
}
}