У меня вопрос по API службы маршрутов. Есть ли настройка гибридного режима движения, которая позволила бы мне нарисовать маршрут для велосипеда, даже если на этой конкретной улице нет велосипедной дорожки или это противоречит уличным правилам (возможно ли это вообще). Я хочу нарисовать отрезок, который будет идти от A до B точно по выбранной дороге, а не вокруг, если эта дорога фактически не позволяет двигаться в этом направлении. Он не обязательно должен быть правильным с точки зрения правил вождения, его нужно просто нарисовать по улице. Я пробовал режим велосипеда вместо режима вождения, но разницы нет.
Я надеюсь, что мой пост имеет смысл
Пример звонка:
function loadRoute0() {
var request0 = {
origin: new google.maps.LatLng(46.56300788, 15.62779705),
destination: new google.maps.LatLng(46.55953332, 15.62616729),
travelMode: google.maps.TravelMode.BICYCLING
};
directionsService.route(request0, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
var renderer = new google.maps.DirectionsRenderer({
polylineOptions: {
strokeColor: "#00FF00"
},
suppressMarkers: true,
map: map
});
renderer.setDirections(result);
}
});
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать TravelMode.WALKING, который обычно дает результаты для дорог с односторонним движением и других маршрутов, которые не работают для TravelMode.DRIVING.
Код в вашем вопросе не воспроизводит опубликованное вами изображение, но использование TravelMode.WALKING возвращает маршрут (где TravelMode.BICYCLING дает ZERO_RESULTS для опубликованного кода)
function loadRoute0() {
var request0 = {
origin: new google.maps.LatLng(46.56300788, 15.62779705),
destination: new google.maps.LatLng(46.55953332, 15.62616729),
travelMode: google.maps.TravelMode.WALKING
};
directionsService.route(request0, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
var renderer = new google.maps.DirectionsRenderer({
polylineOptions: {
strokeColor: "#00FF00"
},
suppressMarkers: true,
map: map
});
renderer.setDirections(result);
} else
console.info("status = " + status);
});
}
фрагмент кода:
var map;
function initialize() {
map = new google.maps.Map(document.getElementById("map_canvas"));
directionsService = new google.maps.DirectionsService();
loadRoute0();
function loadRoute0() {
var request0 = {
origin: new google.maps.LatLng(46.56300788, 15.62779705),
destination: new google.maps.LatLng(46.55953332, 15.62616729),
travelMode: google.maps.TravelMode.WALKING
};
var markerS = new google.maps.Marker({
position: request0.origin,
map: map,
label: "S"
});
var markerE = new google.maps.Marker({
position: request0.destination,
map: map,
label: "E"
});
directionsService.route(request0, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
var renderer = new google.maps.DirectionsRenderer({
polylineOptions: {
strokeColor: "#00FF00"
},
suppressMarkers: true,
map: map
});
renderer.setDirections(result);
} else
console.info("status = " + status);
});
}
}
google.maps.event.addDomListener(window, "load", initialize);html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}<script src = "https://maps.googleapis.com/maps/api/js"></script>
<div id = "map_canvas"></div>