2011-12-27 7 views
5

Voglio confrontare due percorsi per verificare se sono uguali o meno nella mia app per iPhone.Come confrontare due percorsi usando google direction apis o altri apis per l'app per iPhone

C'è una persona X che vuole andare al punto A al punto B e un'altra persona vuole andare al punto A1 al punto B1.

Posso ottenere un percorso da A a B utilizzando questa API di direzione di Google.

http://maps.googleapis.com/maps/api/directions/xml?origin=Point a A address&destination=Point B address&sensor=false

stesso modo posso ottenere tracciato della A1 a B1.

ma la latitudine e la longitudine che ottengo in xmls non corrispondono (anche un singolo punto non corrisponde). Quindi, ecco la mia domanda, come posso abbinare due percorsi che voglio sapere è la stessa rotta o no.

enter image description here

risposta

1

Se il percorso A1B1 ottimale è in realtà un sottoinsieme del percorso AB mi aspetto lo START_LOCATION e end_locations per i passi corrispondenti di condividere le longitudini e latitudini simili, ma questo non è un requisito della indicazioni API. Il percorso migliore da A a B potrebbe passare attraverso A1 e B1, ma ciò non significa che il percorso migliore da A1 a B1 condividerà gli stessi identici passaggi.

Quello che penso che si voglia fare è osservare i punti polilinea restituiti per i segmenti del percorso e vedere se passeranno attraverso A1 e B1 nell'ordine corretto. È possibile espandere le stringhe polilinea codificate in un elenco di latitudine e longitudini utilizzando l'algoritmo this.

+0

buona idea..do Conoscete qualche algo più semplice per il confronto ploylines .. perchè i valori lunghi lat che non corrisponde direttamente quando li decodifico .. qualche idea? – Saurabh

+0

Cercherei certamente una tolleranza, invece di una corrispondenza esatta == forse fare una semplice (lat1-lat2) + (long1-long2) <= threshold, dove threshold è un numero piccolo che scegli "mean enough" " – bamnet