Trova i probabili candidati per le località visitate lungo la traccia GPS

3

Sto creando uno strumento di visualizzazione per i dati di allenamento, specializzato in gite in bicicletta. Sto cercando modi per generare più valore dai dati che sono stati registrati. Dato che di solito c'è una traccia GPS disponibile, mi chiedevo se e come estrarre possibili città visitate o luoghi speciali durante il viaggio. Sono particolarmente interessato alla possibile destinazione prevista di un viaggio.

Ora è molto semplice se hai una traccia che va dalla posizione A alla B, ma le mie tracce sono solitamente rotonde in cui la posizione iniziale e finale sono le stesse.

Esistono alcuni casi speciali in cui la destinazione dovrebbe essere relativamente facile da determinare. Questi sono:

  • C'è una posizione in cui la registrazione è stata messa in pausa, causando così una lacuna nei dati registrati
  • La registrazione non viene messa in pausa ma la posizione rimane la stessa per un tempo considerevole. Il candidato probabile per la destinazione prevista sarebbe il più lungo di tali periodi.

Supponendo che non incontriamo una delle suddette circostanze mi piacerebbe creare un elenco di città / luoghi speciali visitati o guidato da.

Posso immaginare di restringere la ricerca dividendo la traccia in terza e analizzare solo il segmento centrale, che molto probabilmente contiene la destinazione prevista.

Ora ci sono API disponibili che potrebbero darmi luoghi vicini a qualsiasi dato punto GPS ma chiedere le informazioni per ogni punto causerebbero migliaia di richieste, dato che di solito c'è un punto GPS disponibile ogni secondo .

Ora la mia domanda è:

Esiste un algoritmo o una tecnica noti che ridurrebbe il numero di richieste che dovrei inviare a un'API di ubicazione? In caso contrario, quale sarebbe un buon modo per trovare possibili posizioni previste lungo una traccia GPS se la traccia non contiene pause o punti caldi in cui la posizione è approssimativamente la stessa per un periodo prolungato. Mi rendo conto che questa è la stessa domanda che richiede una posizione speciale lungo un segmento di una traccia GPS, che non ho alcuna idea nemmeno per entrambi.

Un esempio del risultato desiderato sarebbe simile a questo:

  1. Viene caricata una traccia GPS
  2. L'algoritmo / programma restituisce un elenco di posizioni con nome e indirizzo, come:
    • Città A, indirizzo
    • Città B, indirizzo
    • Ristorante A, indirizzo

Inoltre, sono apprezzate tutte le idee, compreso il modo in cui posso strutturare e raggruppare i dati sulla posizione per aiutare con l'analisi.

    
posta konqi 02.10.2015 - 22:49
fonte

3 risposte

1

Quindi penso che dipenderà un po 'dalla natura dei tuoi dati. Qualunque cosa tu scelga di fare, capire come appariranno i tuoi dati, le tue sensazioni e le tue scale sarà importante.

Francamente, supponendo che i giri in bicicletta siano spesso brevi, sospetto che il calcolo di una o più scatole di delimitazione per il giro in bicicletta, il recupero di tutti i punti di interesse all'interno della scatola, e quindi l'elaborazione successiva di qualsiasi altra cosa sia la soluzione migliore. Di nuovo, cerca di avere un'idea delle scale coinvolte, ma questa è la mia impressione. Una o poche richieste pesanti contro migliaia di spilli è probabile che sarà molto più veloce.

Quindi, una volta ottenuto l'elenco delle posizioni, è possibile eseguire calcoli a distanza locali senza troppa fatica. Si noti che a seconda della scala potrebbe essere necessario utilizzare una struttura spaziale come un albero R, ecc. Localmente; un altro potenziale strumento potrebbe essere ridurre la curva in una serie molto più piccola dei segmenti di linea e quindi considerare le distanze del segmento della linea di punti.

Dopo ciò, diventerà soggettivo per quanto riguarda la ricerca della destinazione finale / waypoint. Ecco alcuni pensieri:

  • Oltre alle pause e alle soste, penso che la tua ipotesi del terzo medio sia buona. Potresti essere in grado di estenderlo a uno schema di ponderazione generale o generalizzare a più di una sorta di approccio "k-means".
  • Hai informazioni sul tipo generale di punto di interesse? Alcuni punti di interesse richiedono intrinsecamente di fermarsi a festeggiare (andare in bicicletta davanti a un ristorante non è altrettanto soddisfacente) e alcuni possono essere principalmente una festa per gli occhi (parchi, ecc.). In modo che possa essere usato anche per filtrare: andare vicino a un ristorante senza sosta è una destinazione improbabile, andare vicino a un parco probabilmente non richiede sosta. Nota che un semplice euristico per nome potrebbe essere un buon metodo per il tipo di stop.
  • Allo stesso modo, la distanza per tipo di punto di interesse può essere utile. I ristoranti richiederebbero un successo esatto, i parchi richiederebbero un colpo ravvicinato e le viste panoramiche potrebbero essere molto più distanti.
  • Sarebbe interessante osservare il ruolo dei punti di flesso nella curva rispetto ai punti di interesse - non so se esiste una correlazione positiva ma potrebbe esserci.

Buona fortuna! Facci sapere come risulta.

    
risposta data 16.10.2015 - 06:58
fonte
1

L'API che ti dà le posizioni vicine a un dato punto GPS deve funzionare con un tipo di raggio, implicito (indicato nella documentazione) o esplicitamente passato come parametro. Supponiamo che questo raggio sia R.

Quindi, invia una richiesta per il primo punto nel percorso, quindi inizia a saltare i punti successivi finché ti trovi all'interno di R. Una volta raggiunto un punto esterno a R, invia la tua prossima richiesta e inizia a contare da quel punto . In questo modo, non invierai richieste inutili, quindi il numero di richieste verrà notevolmente ridotto.

Se trovi che stai ancora inviando troppe richieste, quindi aumenta R.

    
risposta data 03.10.2015 - 03:20
fonte
0
  1. Ottieni tutte le possibili destinazioni all'interno del riquadro di delimitazione della traccia GPS.
  2. Trova quelli più vicini al percorso effettivo.
  3. Classifica da:
    • tempo trascorso nelle vicinanze
    • tempo trascorso prima e dopo di essi (cioè, ponderazione per "metà del viaggio")
    • altri fattori come l'interesse per la destinazione (in base a qualsiasi cosa tu sappia sul / i tuo / i utente / i)
  4. Scegli il migliore.
risposta data 16.10.2015 - 07:12
fonte

Leggi altre domande sui tag