From ce5495418e7f3b350db172f282eb7af8460a8a86 Mon Sep 17 00:00:00 2001 From: leekleak <142348248+leekleak@users.noreply.github.com> Date: Sat, 8 Feb 2025 16:56:18 +0200 Subject: [PATCH] Improve place search speed by ~10x (#1236) * improve it * fix distortion with lattitude + remove far away results --- .../providers/openstreetmaps/OsmLocationProvider.kt | 2 +- .../locations/providers/openstreetmaps/OverpassApi.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OsmLocationProvider.kt b/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OsmLocationProvider.kt index 1967ec50..609768e4 100644 --- a/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OsmLocationProvider.kt +++ b/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OsmLocationProvider.kt @@ -141,7 +141,7 @@ internal class OsmLocationProvider( return result .asSequence() .filter { - !hideUncategorized || (it.category != null) + (!hideUncategorized || (it.category != null)) && it.distanceTo(userLocation) < searchRadiusMeters } .groupBy { it.label.lowercase() diff --git a/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OverpassApi.kt b/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OverpassApi.kt index 8415156f..d00b66f4 100644 --- a/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OverpassApi.kt +++ b/data/locations/src/main/java/de/mm20/launcher2/locations/providers/openstreetmaps/OverpassApi.kt @@ -7,6 +7,7 @@ import retrofit2.Retrofit import retrofit2.http.Body import retrofit2.http.POST import java.lang.reflect.Type +import kotlin.math.cos data class OverpassFuzzyRadiusQuery( val tag: String = "name", @@ -62,10 +63,13 @@ class OverpassFuzzyRadiusQueryConverter : Converter