AvailabilityDetector: set maximum distance to 150 meters (fixes #4)

This commit is contained in:
Johan von Forstner
2020-04-23 09:17:36 +02:00
parent dba9bf6d10
commit 5c4dd958f9
3 changed files with 12 additions and 2 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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(