Google maps 谷歌地图API V3-方向面板在更改旅行模式时出错
我正在构建一个谷歌地图应用程序,在这个应用程序中,我需要通过多个旅行选项给出方向,并在侧面板中显示方向 但是,当我选择一个新的方向请求并将结果传递给面板时,当事情变得一团糟时,请查看小提琴Google maps 谷歌地图API V3-方向面板在更改旅行模式时出错,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我正在构建一个谷歌地图应用程序,在这个应用程序中,我需要通过多个旅行选项给出方向,并在侧面板中显示方向 但是,当我选择一个新的方向请求并将结果传递给面板时,当事情变得一团糟时,请查看小提琴 这里是如何重现它的:首先选择一个方向,使用公交作为出行模式,然后换成自行车,你会在部分中看到奇怪的方框,在那里你可以选择其他路线 注意:只有当Directions请求对象中的“ProviderRouteAlternations”设置为true时,并且只有当实际存在多条路由时,才会发生这种情况, (该部分似乎没
这里是如何重现它的:首先选择一个方向,使用公交作为出行模式,然后换成自行车,你会在部分中看到奇怪的方框,在那里你可以选择其他路线 注意:只有当Directions请求对象中的“ProviderRouteAlternations”设置为true时,并且只有当实际存在多条路由时,才会发生这种情况, (该部分似乎没有完全更新) 这是我的密码
<div class="mapsection" >
<form onsubmit="calcRoute();return false;">
<select id="travelmode">
<option value="DRIVING" selected="selected" data-shortMode="c">DRIVING</option>
<option value="TRANSIT" data-shortMode="r" selected>TRANSIT</option>
<option value="WALKING" data-shortMode="w">WALKING</option>
<option value="BICYCLING" data-shortMode="b">BICYCLING</option>
</select>
<input type="text" id="start" value="Washington"/>
<input type="text" id="end" value="New York"/>
<button type="submit">GET DIRECTIONS</button>
</form>
<div id="map_canvas" style="width:100%; height:550px;float:left;"></div>
<div id="directionsPanel" style="float:right;max-width:395px; overflow:scroll;height: 505px;overflow-x: hidden;"></div>
</div>
<script>
//define one global Object
var myMap = {}
//init
function initialize(){
//set up map options
var mapOptions = {
center: new google.maps.LatLng(40.75377,-73.990531),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP,
};
myMap.map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
myMap.directionsService = new google.maps.DirectionsService();
myMap.directionsDisplay = new google.maps.DirectionsRenderer();
myMap.directionsDisplay.setMap(myMap.map);
myMap.directionsDisplay.setPanel(document.getElementById("directionsPanel"));
}//end init
//directions
var calcRoute = function() {
var start = document.getElementById("start").value,
end = document.getElementById("end").value,
request = {
origin:start,
destination:end,
durationInTraffic :true,
transitOptions: {
departureTime: new Date()
},
provideRouteAlternatives : true,
travelMode: document.getElementById("travelmode").value
};
myMap.directionsService.route(request, function(result, status) {
if(status == google.maps.DirectionsStatus.OK) {
myMap.directionsDisplay.setDirections(result);
}else{
alert("something went wrong!");
}
});
}
//script loader
var loadScript = function() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY_HERE&sensor=false&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
</script>
驱动
过境
行走
骑自行车
问路
//定义一个全局对象
var myMap={}
//初始化
函数初始化(){
//设置地图选项
变量映射选项={
中心:新google.maps.LatLng(40.75377,-73.990531),
缩放:4,
mapTypeId:google.maps.mapTypeId.ROADMAP,
};
myMap.map=new google.maps.map(document.getElementById(“map_canvas”),mapOptions);
myMap.directionsService=新建google.maps.directionsService();
myMap.directionsDisplay=新建google.maps.DirectionsRenderer();
myMap.directionsDisplay.setMap(myMap.map);
myMap.directionsDisplay.setPanel(document.getElementById(“directionsPanel”);
}//结束初始化
//方向
var calcRoute=函数(){
var start=document.getElementById(“start”).value,
end=document.getElementById(“end”).value,
请求={
来源:start,
目的地:完,
持续时间:对,
过渡:{
出发时间:新日期()
},
ProviderRouteAlternatives:正确,
travelMode:document.getElementById(“travelMode”).value
};
myMap.directionsService.route(请求、函数(结果、状态){
if(status==google.maps.directionstatus.OK){
myMap.directionsDisplay.setDirections(结果);
}否则{
警惕(“出了问题!”);
}
});
}
//脚本加载器
var loadScript=函数(){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=”http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY_HERE&sensor=false&callback=initialize";
document.body.appendChild(脚本);
}
window.onload=loadScript;
这个问题已经解决了,你可以在问题中的小提琴上看到它