/ / jak odzyskać dane w oparciu o najbliższą odległość w pokoju persistance [duplicate] - android, sqlite, kotlin, location, android-room

jak odzyskać dane w oparciu o najbliższą odległość w pokoju persistance [duplicate] - android, sqlite, kotlin, location, android-room

siano wszystko .. Mam tabelę klientów w mojej bazie danych Android .. Obecnie używam persistance pokoju, szukam wziąć wszystkich moich klientów danych .. ale sekwencyjny od lokalizacji początkowej do najbliższej mnie w tej chwili .. jak zapytać o to mój przykład przypadku .. Moja obecna szerokość geograficzna wynosi -7,3530829, moja długość geograficzna wynosi obecnie 112,6901788

    data in my customers table
customers.address = "Waterpark Boulevard Citraland Area
customers.handphone1 = "0857887328"
customers.latitude = -7.2864881
customers.longitude = 112.6525076


data in my customers table
customers.address = "Nature Conservation Area
customers.handphone1 = "0857887328"
customers.latitude = -7.3571553
customers.longitude = 112.6862058


data in my customers table
customers.address = "Kawasan Taman Pinang
customers.handphone1 = "0857887328"
customers.latitude =
-7.3403807
customers.longitude = 112.6914085

//get Data by Name,,
@Query("SELECT * FROM customers WHERE name = :name")
abstract fun findByName(name:String): MutableList<Customers>

//How to retrieve data based on the closest distance ?
@Query("SELECT ???")
abstract fun findByDistance(mylatitude:Double,mylongitude:Double): MutableList<Customers>

Proszę pomóż znaleźć zapytanie w FindByDistance

Odpowiedzi:

0 dla odpowiedzi № 1

Znalazłem właściwe zapytanie, obliczając odległość prostą.

@Query("SELECT * FROM customers ORDER BY ABS(latitude - :latitude) + ABS(longitude - :longitude) ASC")
abstract fun findByDistance(latitude:Double,longitude:Double): MutableList<Customers>

Może to pomoże ci, którzy potrzebują tego samego co ja .. dziękuję ...