From 5c4dd958f98520a9d6bce096b7ced59ab1eedc01 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Thu, 23 Apr 2020 09:17:36 +0200 Subject: [PATCH] AvailabilityDetector: set maximum distance to 150 meters (fixes #4) --- .../evmap/api/availability/AvailabilityDetector.kt | 2 ++ .../availability/ChargecloudAvailabilityDetector.kt | 2 -- .../api/availability/NewMotionAvailabilityDetector.kt | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt index 5c214c2b..245e67b5 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt @@ -18,6 +18,8 @@ interface AvailabilityDetector { } abstract class BaseAvailabilityDetector(private val client: OkHttpClient) : AvailabilityDetector { + protected val radius = 150 // max radius in meters + protected suspend fun httpGet(url: String): String { val request = Request.Builder().url(url).build() val response = client.newCall(request).await() diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt index a358f83c..8843cc0c 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt @@ -8,8 +8,6 @@ import okhttp3.OkHttpClient import org.json.JSONObject import java.io.IOException -private const val radius = 200 // max radius in meters - class ChargecloudAvailabilityDetector( client: OkHttpClient, private val operatorId: String diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt index aff1862c..e65cda95 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt @@ -99,6 +99,16 @@ class NewMotionAvailabilityDetector(client: OkHttpClient, baseUrl: String? = nul distanceBetween(marker.coordinates.latitude, marker.coordinates.longitude, lat, lng) } ?: throw AvailabilityDetectorException("no candidates found.") + if (distanceBetween( + nearest.coordinates.latitude, + nearest.coordinates.longitude, + lat, + lng + ) > radius + ) { + throw AvailabilityDetectorException("no candidates found") + } + // combine related stations markers = markers.filter { marker -> distanceBetween(