我有一个包含0到26个航路点的字符串:
location1=Frankfurt&location2=Berlin&location3=Paris
下面的代码可以处理不同数量的航路点,并在地图上显示它们,但我想简化它。
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
waypoint_dict = parseStringToDictionary(document.getElementById('waypoints').value);
var waypoint_array = [];
counter_waypoints = 0;
for(var property in waypoint_dict) {
waypoint_array.push(waypoint_dict[property]);
counter_waypoints += 1
}
switch (counter_waypoints) {
case 0:
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('destination').value,
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
}
});
break;
break;
case 1:
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('destination').value,
waypoints: [{location: waypoint_array[0]}],
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
}
});
break;
case 2:
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('destination').value,
waypoints: [{location: waypoint_array[0]},{location: waypoint_array[1]}],
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
}
});
break;
case 3:
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('destination').value,
waypoints: [{location: waypoint_array[0]},{location: waypoint_array[1]}, {location: waypoint_array[2]}],
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
}
});
break;
}
}