-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Migliorare la query per la ricerca precisa (quella che si attiva anteponendo * alla stringa di ricerca per Posizione).
Qui di seguito un link utile di una domanda di stackOverflow: link
Una delle risposte suggerisce questo:
SELECT
id,
(
3959 *
acos(cos(radians(37)) *
cos(radians(lat)) *
cos(radians(lng) -
radians(-122)) +
sin(radians(37)) *
sin(radians(lat )))
) AS distance
FROM markers
HAVING distance < 28
ORDER BY distance LIMIT 0, 20;Sembra fattibile dato che non ci sono operazioni come POW() o SQRT() che non sono nativamente supportate da SQLite.
Aggiornamento:
Le funzioni trigonometriche non sono supportate da SQLite e per fare delle funzioni custom è mooolto difficile.
Conviene salvare le coordinate anche in forma "trigonometrica" (ciò applicare la funzione seno e coseno alle coordinate) così facendo possono essere utilizzate semplici operazioni (+, -, *) per la ricerca.
Oppure si può lasciare tutto com'era e far fare tutto il lavoro ad Android (potrebbe essere leggermente pesante (?))
Controllare questo: link
Cose da fare:
-
Implementare la query soprastante - Scegliere il metodo migliore da implementare
- Testarla
Supposizione:
Potrebbe non dover più servire un'estrema precisione dato che è stata introdotta la PrecisionSearch e la nonPrecisionSearch