Ich habe eine Google-Map mit Autocomplete-Eingabefeldern, die Wegbeschreibungen anzeigt. Problem ist, dass ich Fehler bekommen habe, weil der directionservice die Input-Variable anstelle der Autovervollständigen-Variable verwendet. Wie kann ich das beheben?Wegbeschreibungen auf Google Maps mit Autocomplete-Boxen
Demo: http://touristification.com/reisadvies/routekaart.html
<div id="map"></div>
<script>
var placeSearch, autocomplete, autocomplete2;
google.maps.event.addDomListener(window, 'load', initMap);
function initMap() {
var input1 = document.getElementById('locationTextField');
var start = new google.maps.places.Autocomplete(input1);
var input2 = document.getElementById('locationTextField2');
var end = new google.maps.places.Autocomplete(input2);
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: {lat: 52.34, lng: 4.87}
});
directionsDisplay.setMap(map);
var geocoder = new google.maps.Geocoder;
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService, directionsDisplay);
};
document.getElementById('locationTextField').addEventListener('change', onChangeHandler);
document.getElementById('locationTextField2').addEventListener('change', onChangeHandler);
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
directionsService.route({
origin: document.getElementById('locationTextField').value,
destination: document.getElementById('locationTextField2').value,
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
</script>
gut gemacht auf, zunächst einmal zu beheben, dass: „Sie haben die Google Maps API mehrere Male auf diese enthalten Dies kann zu unerwarteten Fehlern führen. " – bora89
Wenn das nicht funktioniert, versuchen Sie, den Parameter start und end als Parameter an calculateAndDisplayRoute zu übergeben, und verwenden Sie den Befehl directionService mit start.geometry.location für den Ursprung und end.geometry.location am Ziel. – Narayon
Danke. Behoben, aber ich habe immer noch Fehler. – Tim