Van*_*mos 13 javascript jquery google-maps google-maps-api-3
我正在开发一个使用Google Maps API跟踪路线的系统.我有原点和目的地,在这些点之间有一些路标.通过跟踪路线,Google会返回最佳路线并在地图上标记这些点.我们在div中显示路径数据.我的计算路径的函数,返回数据的部分如下所示:
directionsService.route(request, $.proxy(function(response, status){
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var orders = response.routes[0].waypoint_order;
var route = response.routes[0];
var total_distance = 0;
var displayRoute = $('#detail-route');
for (i = 0; i < route.legs.length; i++){
var routeSegment = i + 1,
from_address = route.legs[i].start_address.split(','),
to_address = route.legs[i].end_address.split(',');
total_distance += Math.floor(route.legs[i].distance.value / 1000);
displayRoute.append('<b>Trecho ' + routeSegment + ': </b><br/>');
displayRoute.append('<b>Saindo de: </b>' + from_address[0] + '<br/>');
displayRoute.append('<b>Indo para: </b>' + to_address[0] + '<br/>');
displayRoute.append('<b>Distância: </b>' + route.legs[i].distance.text);
}
displayRoute.prepend('total:' + this.format(total_distance) + ' km' + '<br/><br/>');
Run Code Online (Sandbox Code Playgroud)
函数format()是我格式km的函数..
问题在于,在某些路线上,waypoint_order节目的顺序与中的顺序不同legs.例如:
对于给定路线,route.legs[i]返回顺序为:"航点0,航点1,航点3,航点2",但该 waypoint_order属性返回[3,0,2,1,3]
这是预期的行为,还是我错过了什么?
是一种预期的行为,因为:
如果optimizeWaypoints设置为true,则此字段将包含输入路点的重新排序的排列.例如,如果输入为:
原点:洛杉矶
Waypoints:达拉斯,班戈,凤凰城
目的地:纽约,优化输出的排序如下:
原产地:洛杉矶
航点:凤凰城,达拉斯,班戈
目的地:纽约然后这个领域将是一个包含值[2,0,1]的数组.请注意,航点的编号从零开始.如果任何输入航路点的中途停留设置为false,则此字段将为空,因为路由优化不适用于此类查询.
如上所述:DirectionsResult
waypoint_order是优化的订单
| 归档时间: |
|
| 查看次数: |
7763 次 |
| 最近记录: |