2016-08-26 19 views
0

我正在使用谷歌方向API來解決旅行商問題。如何使用谷歌方向優化路線API

顯然,api需要一個名爲optimize:true的參數,然後返回一個"waypoint_order": [ 1, 0, 2, 3 ],告訴您路線優化的最佳路點。

事情是,當您嘗試優化路線時,API不起作用,您會得到NO_RESULTS。

例如,使用此URL查看當optimize:true|位被添加時API如何失敗。

不工作(NO_RESULTS錯誤):

https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJdd4hrwug2EcRmSrV3Vo6llI&destination=place_id:ChIJh1a5WhEMa0gRY1JU4PEam8Q&waypoints=optimize:true|place_id:ChIJPeqVDlONbEgRk4X1zrUsKDs|place_id:ChIJ_WegsaCYc0gRlCypaxXgLjs|&key=YOUR_KEY

工作(但沒有優化):

沒有優化網址:https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJdd4hrwug2EcRmSrV3Vo6llI&destination=place_id:ChIJh1a5WhEMa0gRY1JU4PEam8Q&waypoints=place_id:ChIJPeqVDlONbEgRk4X1zrUsKDs|place_id:ChIJ_WegsaCYc0gRlCypaxXgLjs|&key=YOUR_KEY

有誰知道,如果他們停止支持路由優化?

感謝

+0

我已經看到它的工作。請提供一個[mcve]來展示你所看到的內容。 – geocodezip

回答

1

在我看來就像是在爲DirectionsService的錯誤,當你在PlaceIds通過。我用Javascript API複製它。使用地址的工作原理:

waypts = []; 
    waypts.push({ 
    location: "Plymouth, UK", // {placeId:"ChIJPeqVDlONbEgRk4X1zrUsKDs"}, 
    stopover: true 
    }); 
    waypts.push({ 
    location: "Bournemouth, UK", // {placeId:"ChIJ_WegsaCYc0gRlCypaxXgLjs"}, 
    stopover: true 
    }); 
    var request = { 
    origin: "London, UK", //{placeId:"ChIJdd4hrwug2EcRmSrV3Vo6llI"}, 
    destination: "Newquay, UK", //{placeId: "ChIJh1a5WhEMa0gRY1JU4PEam8Q"}, 
    waypoints: waypts, 
    optimizeWaypoints: true, 
    travelMode: 'DRIVING' 
    }; 

fiddle using addresses (returns waypoint order=1,0)

但同樣的位置(我用這些placeIds獲得上述地址)不起作用使用placeIds:

waypts = []; 
    waypts.push({ 
    location: {placeId:"ChIJPeqVDlONbEgRk4X1zrUsKDs"}, 
    stopover: true 
    }); 
    waypts.push({ 
    location: {placeId:"ChIJ_WegsaCYc0gRlCypaxXgLjs"}, 
    stopover: true 
    }); 
    var request = { 
    origin: {placeId:"ChIJdd4hrwug2EcRmSrV3Vo6llI"}, 
    destination: {placeId: "ChIJh1a5WhEMa0gRY1JU4PEam8Q"}, 
    waypoints: waypts, 
    optimizeWaypoints: true, 
    travelMode: 'DRIVING' 
    }; 

fiddle using placeId (returns ZERO_RESULTS

可能與問題跟蹤器中的此問題有關:Issue 8979: Bug: Can't use combination of placeId and String for origin/destination