Modo corretto per la ricerca geografica

0

Attualmente sto usando firebase che mi limita a domande semplici e perché voglio evitare di usare il keyEntered modo di gestire le query geografiche di geoFire ho deciso di cimentarmi con la mia (ingenua) implementazione. Non sono convinto al 100% che sia corretto e ho bisogno di un controllo di sanità mentale.

dal mio database ottengo il seguente:

key: {
  lat: 40,
  lng: -73
}

Voglio interrogare tutto entro ~ 200 metri dalla mia posizione attuale, quindi faccio il seguente (semi pseudo codice):

firebase
  .startAt(currentLongitude)
  .endAt(currentLongitude + 0.002)

firebase
  .startAt(currentLatitude)
  .endAt(currentLatitude + 0.002)

La mia ipotesi qui è che 3 (0,001) posti decimali equivalgono a circa 111 metri. Quindi memorizzo i risultati in lat e lng matrici.

A questo punto presumo anche che avrò alcuni sovrapposizioni / duplicati, quindi uso% s di lodash di lodash su di esso in questo modo (le voci hanno ID univoci):

uniq

Quindi presumo che il risultato sarà una lista corretta di voci non più lunghe di 222 metri (da dare o da fare).

Mi manca qualcosa? Sono sulla buona strada? Dovrei usare il modo basato su eventi di geoFire per farlo (che - secondo me - spara troppi eventi e causa molti db read)?

    
posta pmilla1606 25.10.2016 - 01:21
fonte

0 risposte

Leggi altre domande sui tag