Javascript 谷歌地图API中的建议路线选项?
我需要显示源和目标之间的多条路由。如果我选择一个来源和目的地,我就能找到一条路线。但正如在谷歌地图中一样,我们有一个建议的路线选项,我需要实现这个选项,但我所有的尝试都失败了。请查找以下代码(例如,显示源和目标之间的单一路由)。如果我错过了什么,请引导。提前谢谢Javascript 谷歌地图API中的建议路线选项?,javascript,html,google-maps,google-maps-api-3,Javascript,Html,Google Maps,Google Maps Api 3,我需要显示源和目标之间的多条路由。如果我选择一个来源和目的地,我就能找到一条路线。但正如在谷歌地图中一样,我们有一个建议的路线选项,我需要实现这个选项,但我所有的尝试都失败了。请查找以下代码(例如,显示源和目标之间的单一路由)。如果我错过了什么,请引导。提前谢谢 <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Chart</title>
<style>
html,body,#map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
#panel {
position: absolute;
top: 5px;
left: 50%;
margin-left: -180px;
z-index: 5;
background-color: #fff;
padding: 5px;
border: 1px solid #999;
}
</style>
<script
src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script> var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var map;
function initialize()
{
directionsDisplay = new google.maps.DirectionsRenderer();
var delhi = new google.maps.LatLng(28.6168, 77.2434);
var mapOptions =
{
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: delhi
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
directionsDisplay.setMap(map); } function calcRoute() {
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
var waypts = [];
var checkboxArray = document.getElementById('waypoints');
for (var i = 0; i < checkboxArray.length; i++)
{ if (checkboxArray.options[i].selected == true)
{
waypts.push({
location:checkboxArray[i].value,
stopover:true});
}
}
var request =
{
origin: start,
destination: end,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(response, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
directionsDisplay.setDirections(response);
var route = response.routes[0];
var summaryPanel = document.getElementById('directions_panel');
summaryPanel.innerHTML = ''; // For each route, display summary information.
for (var i = 0; i < route.legs.length; i++)
{
var routeSegment = i + 1;
summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment + '</b><br>';
summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
}
} });
} google.maps.event.addDomListener(window, 'load', initialize); </script>
</head>
<body>
<div id="map-canvas" style="float: left; width: 70%; height: 100%;"></div>
<div id="control_panel"
style="float: right; width: 30%; text-align: left; padding-top: 20px">
<div style="margin: 20px; border-width: 2px;"><b>Loco Journey Start Station:</b> <select
id="start">
<option value="Tughlakabad">Panvel</option>
<option value="Lucknow">Lucknow</option>
<option value="Firozpur">Firozpur</option>
<option value="Ghaziabad">Ghaziabad</option>
</select> <br>
<b>Journey:</b> <br>
<i>(Ctrl-Click for multiple selection)</i> <br>
<select multiple id="waypoints">
<option value="Bhopal">Bhopal</input>
<option value="Raipur">Raipur</input>
<option value="Farukkhabad">Farukkhabad</input>
<option value="Jhansi">Jhansi</input>
</select> <br>
<b>Loco Journey End Station:</b> <select id="end">
<option value="Lucknow">Lucknow</option>
<option value="Firozpur">Firozpur</option>
<option value="Ghaziabad">Ghaziabad</option>
<option value="Tughlakabad">Tughlakabad</option>
</select> <br>
<input type="submit" onclick="calcRoute();"></div>
<div id="directions_panel"
style="margin: 20px; background-color: #FFEE77;"></div>
</div>
</body>
</html>
图表
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px
}
#面板{
位置:绝对位置;
顶部:5px;
左:50%;
左边距:-180px;
z指数:5;
背景色:#fff;
填充物:5px;
边框:1px实心#999;
}
var方向显示;var directionsService=new google.maps.directionsService();var映射;
函数初始化()
{
directionsDisplay=new google.maps.DirectionsRenderer();
var delhi=new google.maps.LatLng(28.6168,77.2434);
变量映射选项=
{
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:德里
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
directionsDisplay.setMap(map);}函数calcRoute(){
var start=document.getElementById('start').value;
var end=document.getElementById('end').value;
var-waypts=[];
var checkboxArray=document.getElementById('waypoints');
对于(var i=0;i;
summaryPanel.innerHTML+=route.legs[i]。起始地址+'to';
summaryPanel.innerHTML+=route.legs[i]。结束地址+'
';
summaryPanel.innerHTML+=route.legs[i].distance.text+'
';
}
} });
}google.maps.event.addDomListener(窗口“加载”,初始化);
本地旅程起点站:
本韦尔
勒克瑙
费罗兹普尔
加齐阿巴德
旅程:
(按Ctrl键可选择多个选项)
博帕尔
赖布尔
法鲁卡巴德
占西
本地旅程终点站:
勒克瑙
费罗兹普尔
加齐阿巴德
格拉克巴德
:
ProviderRouteAlternations(可选)设置为true时,指定方向服务可以提供多个方向
在响应中选择路线。请注意,提供路线备选方案可能会增加从
服务器
:
ProviderRouteAlternations(可选)设置为true时,指定方向服务可以提供多个方向
在响应中选择路线。请注意,提供路线备选方案可能会增加从
服务器
:
ProviderRouteAlternations(可选)设置为true时,指定方向服务可以提供多个方向
在响应中选择路线。请注意,提供路线备选方案可能会增加从
服务器
:
ProviderRouteAlternations(可选)设置为true时,指定方向服务可以提供多个方向
在响应中选择路线。请注意,提供路线备选方案可能会增加从
服务器
var request = {
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
provideRouteAlternatives: true
};