【发布时间】:2013-12-24 08:17:40
【问题描述】:
我正在开发一个使用 Google Maps API 跟踪路线的系统。 我有起点和终点,在这些点之间有一些航路点。 通过追踪路线,谷歌返回最佳路线并在地图上标记这些点。 我们在 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/>');
function format() 是我的格式 km 函数..
问题在于,在某些路由上,waypoint_order 显示的顺序与legs 中的顺序不同。例如:
对于给定的路线,route.legs[i] 返回顺序:'waypoint 0, waypoint 1, waypoint 3, waypoint 2',但 waypoint_orderattribute 返回 [3, 0, 2, 1, 3]
这是预期的行为,还是我在这里遗漏了什么?
【问题讨论】:
-
那个 waypoint_order 真的是
[3, 0, 1, 3]还是你的错字?即它缺少航路点#2?还是您的意思是输入类似[3, 0, 1, 2]的内容? -
这是一个错字,现已更正。谢谢。
-
我们可以见
google.maps.DirectionsRequest对象吗? -
面对同样的问题,附上谷歌如何绘制它与我用航点顺序绘制它时得到的链接imgur.com/a/p8DdL
-
你不能使用 waypoint_order 来渲染你的标记。看看我的回答,我有一个可行的例子。
标签: javascript jquery google-maps google-maps-api-3