gpt4 book ai didi

google-maps - Google Maps Api 直线(最短)路线

转载 作者:行者123 更新时间:2023-12-04 11:17:46 27 4
gpt4 key购买 nike

我目前正在尝试找到一种如何使用 Google Maps Api V3 获得直线路线的方法。

我已经设法使用地理编码和方向服务来获取从 A 点到 B 点的路线,包括两条替代路线。我还尝试过“无高速公路”和“不收费”,但似乎没有什么能完全解决这个问题......
目前,我检查了三个给定路线的最低英里数,但必须证明这不是最短路线。

我是 不是 搜索最快或最快的路线,但只是一个 直线路线与 低里程 尽可能。

由于我没有找到任何 线程通过使用谷歌解释类似我需要我问你的东西。也许有人在这里有解决方案......

P.S.:我也不能使用“行人模式”,因为当我们安装的导航系统不再工作时,它被用作我们本地消防车的导航帮助。
这也是为什么我们需要尽可能低的公里数的原因 - 在这里驾驶救火车时,最快的路线是 99% 的路线是里程最少的路线,但 Api 不会让我决定并坚持使用主要道路

最佳答案

要获得从 A 到 BI 的最短路线,建议使用“alternatives=true”参数进行不同的查询,在avoid=toll、avoid=highways之间使用“avoid”参数,然后我将比较所有结果以选择最短路线。

 directionsService = new google.maps.DirectionsService;
//avoiding tolls
directionsService.route({
origin: {
'placeId': originId
},
destination: {
'placeId': destinationId
},
provideRouteAlternatives: true,
avoidTolls: true,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
routesResponses.push(response);
}
else {
window.alert('Directions request failed due to ' + status);
}
});
//avoiding highways
directionsService.route({
origin: {
'placeId': originId
},
destination: {
'placeId': destinationId
},
provideRouteAlternatives: true,
avoidHighways: true,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
routesResponses.push(response);
}
else {
window.alert('Directions request failed due to ' + status);
}

//Results analysis and drawing of routes
var fastest = Number.MAX_VALUE,
shortest = Number.MAX_VALUE;

routesResponses.forEach(function(res) {
res.routes.forEach(function(rou, index) {
console.log("distance of route " +index+": " , rou.legs[0].distance.value);
console.log("duration of route " +index+": " , rou.legs[0].duration.value);
if (rou.legs[0].distance.value < shortest) shortest = rou.legs[0].distance.value ;
if (rou.legs[0].duration.value < fastest) fastest = rou.legs[0].duration.value ;

})
})
console.log("shortest: ", shortest);
console.log("fastest: ", fastest);
//painting the routes in green blue and red
routesResponses.forEach(function(res) {
res.routes.forEach(function(rou, index) {
new google.maps.DirectionsRenderer({
map:map,
directions:res,
routeIndex:index,
polylineOptions:{
strokeColor: rou.legs[0].duration.value == fastest? "red":rou.legs[0].distance.value == shortest?"darkgreen":"blue",
strokeOpacity: rou.legs[0].duration.value == fastest? 0.8:rou.legs[0].distance.value == shortest? 0.9: 0.5,
strokeWeight: rou.legs[0].duration.value == fastest? 9:rou.legs[0].distance.value == shortest? 8: 3,
}
})
})
})
});
}

}

关于google-maps - Google Maps Api 直线(最短)路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com