Я пытаюсь создать транзитную карту (с указанием автобусов и метро) с помощью Google Maps, но когда я создаю маркеры «start» и «end» с входов (с адресами автозаполнения) нет никакого способа перетащить любой маркер, несмотря на то, что установлен drag
как true
.Перетаскиваемые маркеры на транзитной карте Google
Изменение опции travelMode
на google.maps.TravelMode.DRIVING
перетаскивание включено. И возвращая это свойство до 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 по умолчанию? Я мог понять, почему Google не может перетащить теги, возможно, вам придется добавить свои перетаскиваемые маркеры с помощью прослушивателей перетаскивания, чтобы перепрограммировать направления при их перемещении. – geocodezip