Javascript 如何使用多个航路点简化google路由代码
我有一个包含0到26个航路点的字符串:Javascript 如何使用多个航路点简化google路由代码,javascript,google-maps,Javascript,Google Maps,我有一个包含0到26个航路点的字符串: location1=Frankfurt&location2=Berlin&location3=Paris 下面的代码可以处理不同数量的航路点,并在地图上显示它们,但我想简化它 function calculateAndDisplayRoute(directionsService, directionsDisplay) { waypoint_dict = parseStringToDictionary(document.get
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;
}
}
您可以在调用
directionsService
之前构建您的对象,下面是对您的代码的轻微修改,这应该足够了
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
var waypoint_dict = parseStringToDictionary(document.getElementById('waypoints').value);
var options = {
origin: document.getElementById('start').value,
destination: document.getElementById('destination').value,
travelMode: 'DRIVING',
waypoints: []
};
for(var property in waypoint_dict) {
options.waypoints.push({location: waypoint_dict[property]});
}
directionsService.route(options, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
} else {
}
});
...
}