Calcolo lunghezza del percorso

voti
2

Ho una mappa con circa 80 annotazioni. Vorrei fare 3 cose.

1) Dalla mia posizione attuale, vorrei conoscere la distanza effettiva rotta verso quella posizione. Non la distanza lineare.

2) Voglio essere in grado di mostrare un elenco di tutte le annotazioni, ma per ogni annotazione (avendo lon / lat) vorrei conoscere il percorso distanza effettiva dalla mia posizione a quella posizione.

3) Vorrei sapere l'annotazione più vicino al mio possition utilizzando tragitto percorso. distanza non lineare.

Penso che la risposta a tutti questi tre punti sarà lo stesso. Ma per favore tenete a mente che io non voglio creare un percorso, voglio solo sapere la distanza l'annotazione.

Spero che qualcuno mi può aiutare.

Con i migliori saluti, Paul Peelen

È pubblicato 20/04/2010 alle 08:49
fonte dall'utente
In altre lingue...                            


3 risposte

voti
2

Da quello che ho capito del tuo post, credo che si cerca la formula Haversine . Fortunatamente per voi, ci sono un certo numero di implementazioni di Objective-C , anche se la scrittura del proprio è banale, una volta di fronte della formula di voi.

Originariamente ho cancellato questo perché non ho notato che non volevi distanza lineare in un primo momento, ma sto portando indietro nel caso in cui si decide che un'approssimazione è abbastanza buono in quel particolare punto della interazione con l'utente.

Risposto il 29/04/2010 a 09:10
fonte dall'utente

voti
1

Credo che come sottolineato in precedenza, la query sarebbe estremamente pesante per Google Maps API se si esegue esattamente quello che stai dicendo. Avete bisogno di tutte queste informazioni in una volta? Forse prima sarebbe sufficiente per interrogare solo alcune delle distanze in base a qualche euristica o nei esigenze degli utenti.

Per ottenere le distanze, è possibile utilizzare un Google Maps GDirectionsoggetto ... come sottolineato qui (in fondo alla pagina c'è " Itinerari e Passi la sezione", con un esempio avanzato .

" The GDirections object also supports multi-point directions, which can be constructed using the GDirections.loadFromWaypoints() method. This method takes an array of textual input addresses or textual lat/lon points. Each separate waypoint is computed as a separate route and returned in a separate GRoute object, each of which contains a series of GStep objects."

Utilizzando l'API di Google Maps in iPhone non dovrebbe essere troppo difficile, e penso che la tua domanda non copre, ma se avete bisogno di qualche esempio di base, si poteva guardare questa domanda, e scorrere fino alla risposta.

In bocca al lupo!

Risposto il 24/04/2010 a 16:23
fonte dall'utente

voti
0

Calcolo tragitto percorso a circa 80 posizioni è certo di essere computazionalmente intensive da parte di Google e non riesco a immaginare che si sarebbe in grado di rendere tali richieste alle API di Google Maps, se fosse possibile farlo su un dispositivo mobile, senza essere fortemente limitato da una connessione telefonica o limiti di frequenza sul server.

Purtroppo, il calcolo della distanza percorso piuttosto che distanza geometrica è un calcolo molto costoso che coinvolge un sacco di dati circa la zona - dati che quasi certamente non si dispone. Questo significa, purtroppo, che questo non è qualcosa che Core Località o MapKit può aiutare con.

Quale problema stai cercando di risolvere, esattamente? Ci possono essere altri euristiche diverse tragitto percorso è possibile utilizzare per approssimare una sorta di classifica di distanza.

Risposto il 23/04/2010 a 08:48
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more