我正嘗試使用Google地圖創建公交地圖指示,但是當我從輸入(使用自動填充地址)創建「開始」和「結束」標記時,儘管將drag
選項設置爲true
,但仍無法拖動任何標記。谷歌公交地圖上的可拖拽標記
將travelMode
選項更改爲google.maps.TravelMode.DRIVING
draggin'啓用。然後回到這個屬性google.maps.TravelMode.TRANSIT
daggin'回到殘疾。
有辦法解決這個問題嗎?
代碼:
var directionsService;
var directionsDisplay;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: {lat: -32.89, lng: -68.845} // Mendoza.
});
directionsService = new google.maps.DirectionsService;
directionsDisplay = new google.maps.DirectionsRenderer({
draggable: true,
map: map,
panel: document.getElementById('right-panel')
});
directionsDisplay.addListener('directions_changed', function() {
var addresses = directionsDisplay.getDirections().routes[0].legs[0];
document.getElementById('from').value = addresses.start_address;
document.getElementById('to').value = addresses.end_address;
});
google.maps.event.addDomListener(document.getElementById('go'), 'click', displayRoute);
var input_from = document.getElementById('from');
var autocomplete = new google.maps.places.Autocomplete(input_from);
autocomplete.bindTo('bounds', map);
var input_to = document.getElementById('to');
var autocomplete = new google.maps.places.Autocomplete(input_to);
autocomplete.bindTo('bounds', map);
displayRoute();
}
function displayRoute() {
directionsService.route({
origin: document.getElementById('from').value,
destination: document.getElementById('to').value,
//travelMode: google.maps.TravelMode.DRIVING,
travelMode: google.maps.TravelMode.TRANSIT
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
console.log(response);
directionsDisplay.setDirections(response);
} else {
alert('Could not display directions due to: ' + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initMap);
你如何添加標記?請提供證明此問題的[最小,完整,測試和可讀示例](http://stackoverflow.com/help/mcve)。 – geocodezip
@geocodezip我將使用的代碼添加到答案中。謝謝。 –
所以標記是默認的DirectionsRenderer標記?我可以看到爲什麼谷歌可能不會讓這些可拖動的,你可能需要添加你自己的可拖動標記與dragend監聽器來重新計算它們移動時的方向。 – geocodezip