我正尝试使用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