Sono un programmatore di logistica e mi è stato chiesto di capire se un punto GPS è "fuori rotta" in cui il percorso è costituito da un certo numero di punti geospaziali (latitudine, longitudine).Instradamento geospaziale
Qual è l'algoritmo migliore per determinare se un punto si trova vicino al percorso? Userò C# e SQL Server, ma in realtà non importa molto se so quale algoritmo usare.
Ho considerato
- Trovare i due punti più vicini e determinare se l'area del triangolo è al di sopra di un limite specifico.
- Utilizzo di vettori per tutte le coppie di punti e quindi controllo per vedere se qualcuno di essi è "simile" al vettore definito dal punto GPS e il punto che determina essere "successivo" nel percorso.
Non ho una laurea in matematica, ma posso probabilmente gestire qualsiasi cosa abbia i termini corretti e un motore di ricerca.
Dovrò effettuare almeno 4000 calcoli all'ora, quindi utilizzare una soluzione di mappatura probabilmente non è accettabile a causa del volume.
quello che hai chiesto è una domanda interessante. Quella soluzione superficie-triangolo non funzionerebbe perché due punti molto distanti genererebbero un triangolo con un'ampia superficie anche quando il punto è leggermente fuori rotta. Non sono sicuro di avere una soluzione migliore. Grazie per avermi dato qualcosa a cui pensare. –
Quale versione di SQL Server stai usando? Hai degli attributi sulla posizione degli autobus diversi da lat/long?Che ne dici di ID bus, ID percorso, ecc. Che possono essere ricollegati alla strada/percorso corretta che dovrebbe essere attiva? – RyanDalton
@RyanDalton 2005 sfortunatamente. A quanto ho capito, il 2012 ha alcune caratteristiche piuttosto carine per quanto riguarda i dati spaziali. Non sono sopra usando mongo o qualche altro database, ma questo finirà per essere un po 'più di lavoro per impostare e mantenere un altro database con informazioni in tempo reale. –