谷歌地图 - 发现较低路线的点顺序

Leo*_*ino 2 javascript google-maps google-maps-api-3

我需要一种方法来使用 Google Maps API 找出点之间的最佳路线。

假设我有四个点 A、B、C 和 D,我将从 A 点出发,需要找出我应该访问的最佳序列,并在地图上绘制到该序列的最小路线的点。

从我在API文档中研究的内容来看,很容易找到多个点之间的最低路线,但API需要点的顺序。就我而言,我需要 API 来返回最佳订单。

我认为的解决方案是找到所有可能的方法,然后找到所有路径的最短路径,然后显示这条路径。但是这个解决方案不会有很好的性能,而且谷歌 API 限制了一天可以绘制的路线数量。

geo*_*zip 5

使用:{optimizeWaypoints: true}

您可以在 DirectionsRequest 中传递 optimizeWaypoints: true 以允许
路线服务通过重新安排航点来优化提供的路线
以更有效的顺序。(此优化是应用
旅行商问题。)所有航点必须是中途停留地 
theDirections 服务来优化他们的路线。

摆弄{optimizeWaypoints: false}

var start = "New York, NY";
var end = "New York, NY";
var waypts = [];
var wayptsIn = ["Montreal, QBC", "Toronto, ONT", "Chicago,IL", "Winnipeg,MB", "Fargo,ND", "Calgary,AB", "Spokane,WA"];

for (var i = 0; i < wayptsIn.length; i++) {
    waypts.push({
        location: wayptsIn[i],
        stopover: true
    });
}

var request = {
    origin: start,
    destination: end,
    waypoints: waypts,
    optimizeWaypoints: false,
    travelMode: google.maps.TravelMode.DRIVING
};
Run Code Online (Sandbox Code Playgroud)

与 optimizeWaypoints 相同的小提琴:true}

var start = "New York, NY";
var end = "New York, NY";
var waypts = [];
var wayptsIn = ["Montreal, QBC", "Toronto, ONT", "Chicago,IL", "Winnipeg,MB", "Fargo,ND", "Calgary,AB", "Spokane,WA"];
for (var i = 0; i < wayptsIn.length; i++) {
    waypts.push({
        location: wayptsIn[i],
        stopover: true
    });
}

var request = {
    origin: start,
    destination: end,
    waypoints: waypts,
    optimizeWaypoints: true,
    travelMode: google.maps.TravelMode.DRIVING
};
Run Code Online (Sandbox Code Playgroud)