使用 google 地图 API 渲染到地图上时无法获取备选路线
Unable to get Alternatives Routes while using google maps API to render onto the map
我正在为我的大学开发一个项目,但在尝试获取替代路线时遇到了困难。
drawMainRoute 函数可以毫无问题地绘制来自给定源和目的地的路线,但我希望路线服务也能给我备用路线。
根据 Google 地图 API,它说,如果我将 provideRouteAlternatives 设置为 true,那么我应该可以获取从源到目的地的所有路由。
我也尝试在 JS 文件中将其更改为 "alternatives: true",但是当我这样做时,它从未绘制路线。并在控制台发现异常。
这是我的JS代码供参考。
function drawHeatMap() {
heatmap = new google.maps.visualization.HeatmapLayer({
data: getPoints(),
map: map,
radius: 15
});
}
function drawMainRoute() {
//disableMap();
drawHeatMap();
var dirRenderer = new google.maps.DirectionsRenderer({ suppressMarkers: true });
var request = {
origin: setStart(),
destination: setEnd(),
provideRouteAlternatives: true,
travelMode: google.maps.TravelMode.DRIVING
};
dirService.route(request, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
dirRenderer.setDirections(result);
}
});
dirRenderer.setMap(map);
}
找到了一种方法来做到这一点。我们必须遍历找到的路线并使用 DirectionsRenderer 单独设置方向。
这是相同的代码。
function drawMainRoute() {
//disableMap();
drawHeatMap();
var dirRenderer = new google.maps.DirectionsRenderer({ suppressMarkers: true });
dirService.route({
origin: setStart(), //yaha start kuch bhi daal sakte, direct string. lat lng ya google.map.place object
destination: setEnd(), //yaha stop
provideRouteAlternatives: true,
travelMode: 'DRIVING'
}, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (var i = 0; i < response.routes.length; i++) {
var dr = new google.maps.DirectionsRenderer();
dr.setDirections(response);
// Tell the DirectionsRenderer which route to display
dr.setRouteIndex(i);
dr.setMap(map);
}
}
});
dirRenderer.setMap(map);
}
我正在为我的大学开发一个项目,但在尝试获取替代路线时遇到了困难。 drawMainRoute 函数可以毫无问题地绘制来自给定源和目的地的路线,但我希望路线服务也能给我备用路线。
根据 Google 地图 API,它说,如果我将 provideRouteAlternatives 设置为 true,那么我应该可以获取从源到目的地的所有路由。
我也尝试在 JS 文件中将其更改为 "alternatives: true",但是当我这样做时,它从未绘制路线。并在控制台发现异常。
这是我的JS代码供参考。
function drawHeatMap() {
heatmap = new google.maps.visualization.HeatmapLayer({
data: getPoints(),
map: map,
radius: 15
});
}
function drawMainRoute() {
//disableMap();
drawHeatMap();
var dirRenderer = new google.maps.DirectionsRenderer({ suppressMarkers: true });
var request = {
origin: setStart(),
destination: setEnd(),
provideRouteAlternatives: true,
travelMode: google.maps.TravelMode.DRIVING
};
dirService.route(request, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
dirRenderer.setDirections(result);
}
});
dirRenderer.setMap(map);
}
找到了一种方法来做到这一点。我们必须遍历找到的路线并使用 DirectionsRenderer 单独设置方向。
这是相同的代码。
function drawMainRoute() {
//disableMap();
drawHeatMap();
var dirRenderer = new google.maps.DirectionsRenderer({ suppressMarkers: true });
dirService.route({
origin: setStart(), //yaha start kuch bhi daal sakte, direct string. lat lng ya google.map.place object
destination: setEnd(), //yaha stop
provideRouteAlternatives: true,
travelMode: 'DRIVING'
}, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (var i = 0; i < response.routes.length; i++) {
var dr = new google.maps.DirectionsRenderer();
dr.setDirections(response);
// Tell the DirectionsRenderer which route to display
dr.setRouteIndex(i);
dr.setMap(map);
}
}
});
dirRenderer.setMap(map);
}