Il Forum è consultabile solo in modalità lettura. Per domande o consigli iscriviti al nostro GRUPPO FACEBOOK / COMMUNITY cliccando qui

Visualizzare indirizzi in un raggio di x km

Discussione in 'App Inventor' iniziata da umarino, 11 Mar 2014.

  1. umarino

    umarino Worker Droid

    Iscritto:
    21 Dic 2012
    Messaggi:
    189
    "Mi Piace":
    56
    ciao a tutti, ho una serie di indirizzi su una fusiontable.
    facendo una opportuna query riesco a visualizzarli ma vorrei visualizzare solo
    quelli entro un raggio di x Km dal punto gps in cui mi trovo.
    mi sono arenato, avete qualche idea?
     
  2. Matte78

    Matte78 Baby Droid

    Iscritto:
    7 Mar 2014
    Messaggi:
    26
    "Mi Piace":
    1
    Ciao,

    non credo sia semplicissimo, ma forse non impossibile….
    Provo a buttarti giù un’idea.
    Attualmente non riesco ad aprire AI, quindi spero di non sbagliarmi
    Con il componente location sensor, riesci a ricavare le coordinate gps della tua posizione
    Sempre con lo stesso componente puoi ricavare le coordinate GPS di un indirizzo, ad esempio uno di quelli ottenuti dalla query della tua fusion table

    Dunque a questo punto tramite le funzioni matematiche, che mi sembrano abbastanza complete su AI dovresti riuscire a calcolare la distanza (ovviamente in linea d’aria) tra due punti

    Ho trovato in rete questa forumala

    Calcolo della distanza tra due punti geografici
    La formula utilizzata per determinare la distanza più breve tra due punti terrestri (geodetica), approssima il geoide a una sfera di raggio R = 6372,795477598 Km (raggio quadrico medio), quindi il calcolo della distanza potrebbe avere un errore dello 0.3%, in particolare nelle estremitá polari, e per distanze lunghe che attraversano diversi paralleli. Dati due punti A e B sulla sfera espressi con la latitudine (lat) e longitudine (lon) si avrà:

    distanza (A,B) = R * arccos(sin(latA) * sin(latB) + cos(latA) * cos(latB) * cos(lonA-lonB))

    Gli angoli utilizzati sono espressi in radianti, la conversione tra gradi e radianti si ottiene moltiplicando l’angolo per pi e dividendo per 180.