2010-08-04 21 views
22

Come utilizzerei l'API di Google Maps per tracciare un percorso? Ad esempio, per avere un sacco di way point caricati sulla mappa (al momento ho questo) e tracciare una linea da ognuno di essi mostrando all'utente un percorso che potrebbero prendere per vederli tutti? Come posso caricare questo quando l'utente vede la mappa?tracciare un percorso su Google Maps

+0

Se posso aggiungere alla mia risposta per chiarire, per favore fatemelo sapere. – RedBlueThing

+0

@ Cannonade Sì, sarebbe carino .. scusa .. potrei avere un esempio? solo un po 'confuso – Skizit

+0

implementerò un esempio e aggiornerò la mia risposta non appena ne avrò la possibilità. – RedBlueThing

risposta

28

È possibile impostare il waypoint proprietà su un oggetto e sarà tracciare il percorso dalla sorgente alla destinazione attraverso tutti i punti nella vostra gamma:

Matrice di waypoint intermedi. Le direzioni saranno calcolate dall'origine alla destinazione tramite ogni waypoint in questo array.

Dopo aver impostato i waypoint proprietà, si chiama il metodo percorso per calcolare le direzioni:

route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus))) 

Una volta ottenuto il DirectionsResult, è possibile utilizzare l'oggetto DirectionsRenderer per rendere i risultati su una mappa di Google.

aggiornamento con l'esempio

di lavoro Il seguente codice fa una richiesta direzione tra i punti di inizio e fine hardcoded tramite una serie di tre waypoint:

// three points through which the directions pass 
var point1 = new google.maps.LatLng(-33.8975098545041,151.09962701797485); 
var point2 = new google.maps.LatLng(-33.8584421519279,151.0693073272705); 
var point3 = new google.maps.LatLng(-33.84525521656404,151.0421848297119); 

// build an array of the points 
var wps = [{ location: point1 }, { location: point2 }, {location: point3}]; 

// set the origin and destination 
var org = new google.maps.LatLng (-33.89192157947345,151.13604068756104); 
var dest = new google.maps.LatLng (-33.69727974097957,150.29047966003418); 

var request = { 
     origin: org, 
     destination: dest, 
     waypoints: wps, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 

Si può trovare un esempio di lavoro di questo codice here (source).

N.B. Ricordare che è possibile utilizzare solo fino a otto waypoint nell'array, a meno che non si passi a un account aziendale.

+0

A B C viene visualizzato come marker sulla mappa. Dove sono impostati? Come posso cambiare questo per essere vuoto o per il titolo sul posto? – LTech

+2

grazie per le informazioni sui limiti dei waypoint –

3

È possibile utilizzare una mappa statica, quindi scorrere i punti e tracciare i punti utilizzando il parametro path.

Qualcosa di simile:

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985 
+3

Potrebbe per favore condividere il codice completo di cui stai parlando? –

0

Ho fatto su Android. Google ha un servizio per questo ecco il link https://developers.google.com/maps/documentation/roads/intro

Troverete una chiamata API di esempio su questa pagina qui. Inoltre alcune istruzioni web. https://developers.google.com/maps/documentation/roads/snap

Questo è un esempio di chiamata Web al servizio. https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YOUR_API_KEY

Se la memoria non serve, io credo che si possa avere fino a 100 punti per chiamata e si ricaricati per ogni chiamata, indipendentemente dalla quantità di punti.

Questa chiamata sopra può anche essere configurata per lo snap alle strade.

Per quanto riguarda il disegno delle rotte quando viene caricata la mappa, ciò dipende dalle tecnologie che si stanno utilizzando. So che è facile entrare.NET WinForms

Se pubblichi un commento sulla tua domanda; facendomi sapere quali tecnologie stai usando, potrei essere in grado di darti qualche consiglio in più.

Se si desidera verificare i percorsi per libero, ho trovato un sito web poco ingegnoso: https://www.darrinward.com/lat-long/

Spero che questo aiuti.

Problemi correlati