我想根据Google中的路线服务绘制多条路线,代码如下
p/s:Data是我从json调用中获得的列表
for (i = 0; i < 20; i++) {
route = data[i];
start = new google.maps.LatLng(route.from_lat,route.from_lng);
end = new google.maps.LatLng(route.to_lat,route.to_lng);
var request = {
origin:start,
destination:end,
travelMode: google.maps.TravelMode.DRIVING
};
var rendererOptions = {
preserveViewport: true,
suppressMarkers:true,
routeIndex:i
};
directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
directionsDisplay.setMap(map);
var directionsService = new google.maps.DirectionsService();
directionsService.route(request, function(result, status) {
console.log(result);
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}});
我似乎无法从论坛中找到很多相关信息,我最好的选择是获取所有单独的交通信息并使用折线再次绘制吗?另外,如何确保循环仅在 DirectionDisplay.setDirections 完成时继续进行?
问候,
安迪
每条路线都需要单独的 google.maps.DirectionsRenderer 对象。像这样的东西:
var routes = [{origin: ..., destination: ...}, {origin: ..., destination: ...}, {origin: ..., destination: ...}];
var rendererOptions = {
preserveViewport: true,
suppressMarkers:true,
routeIndex:i
};
var directionsService = new google.maps.DirectionsService();
routes.each(function(route){
var request = {
origin: route.origin,
destination: route.destination,
travelMode: google.maps.TravelMode.DRIVING
};
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
directionsDisplay.setMap(map);
directionsService.route(request, function(result, status) {
console.log(result);
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
});
我使用的是prototype.js,所以你的数组遍历方法可能会有所不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)