0

Ich frage mich, wie man die Entfernung vom Ursprung einer Routenanfrage abruft, wenn die Route berechnet wurde. Ich möchte damit einen Kreis um den Ursprung der Route zeichnen, die gemacht wurde.Google maps API - abrufen latlng aus dem Ursprung der Richtungen?

function calcRoute() { 
start = document.getElementById("start").value; //value from start textbox 
end = document.getElementById("end").value; //value from end textbox 

var request = { 
    origin: start, 
    destination: end, 
    travelMode: google.maps.TravelMode.DRIVING 
}; 
directionsService.route(request, function(result, status) { 
    //if route can be generated 
    if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(result); 

     //circle.setCenter(); 

    }else{ 
     //display window alert with status error 
     window.alert('Directions request failed due to ' + status); 
    } 
}); 
} 

Die Textfelder, die für den Ursprung und das Ziel die Methode zum automatischen Vervollständigung von der Google-Entwickler-Seite verwenden, verwendet werden, die in meiner Initialise Funktion ist, dass alle Arten von Standorten zurück.

//autocomplete section 
var inputStart = document.getElementById('start'); 
var optionsStart = {}; //Empty which will return all types 
autocomplete = new google.maps.places.Autocomplete(inputStart, optionsStart); 

var inputEnd = document.getElementById('end'); 
var optionsEnd = {}; //Empty which will return all types 
autocomplete = new google.maps.places.Autocomplete(inputEnd, optionsEnd); 
//-------------------------------------------------- 

über recherchiert ive, würde ich muss nur einen Geocoder verwenden Adressen dann wieder die Daten, die ich will oder kann dies mit der Art und Weise mein Code ist jetzt getan werden, um retreive.

Ich habe dieses Stück Code gesehen, aber keine Ahnung, wie man es implementiert, wenn dies auch hilft.

result.routes[0].legs[0].start_location; 

Antwort

0

, ja ...

result.routes[0].legs[0].start_location ist ein LatLng object funktionieren würde.

Sie können damit einen Marker erstellen oder den Kreismittelpunkt festlegen. Wir vermissen jedoch den Code, in dem Sie den Kreis erstellen. Aber man könnte so etwas tun:

circle.setCenter(result.routes[0].legs[0].start_location); 

und wenn Ihr Kreis ist noch nicht erstellt:

var circleOptions = { 
    fillColor: '#FFFFFF', 
    fillOpacity: 0.25, 
    map: map, 
    center: result.routes[0].legs[0].start_location, 
    radius: 10000 
}; 

var circle = new google.maps.Circle(circleOptions); 

Im Folgenden finden Sie ein vollständiges Beispiel:

JSFiddle demo

+0

Ahh danke Ich glaube, ich habe versucht, die latlng als Variable und Eingabe der Variable in den setCenter-Parameter, aber nicht funktioniert .. Vielen Dank! Jetzt muss ich nur noch den Raidius mit einer Art Slider bearbeiten können, Zeit für mehr Forschung haha. Danke noch einmal. – aa29

+0

Willkommen. Aber wenn du 'var xxx = result.routes [0] .legs [0] .start_location' und diese Variable in' setCenter() 'verwendest, gibt es keinen Grund, der nicht funktionieren würde ... Aber du musst das verwenden ** innen ** die Anfragefunktion. – MrUpsidown

Verwandte Themen