J'ai accès à une API solver, sensé optimiser le parcours de mes camions, mais je n'arrive pas à la mettre en pratique.
La documentation est fournie en anglais (et je ne parle pas anglais et les traduction automatique ne sont pas top), cette documentation est faite pour shell, mais le support me dit qu'effectivement il est possible de le faire en php mais n'ont pas de source d'exemple
https://www.solvice.io/docs/vrp/#introduction
J'arrive à me connecté, mais pas à envoyer mes tâche et initialiser l'optimalisation de parcours.
Voilà ou j'en suis :
Code : Tout sélectionner
/**
* url requête : https://api.solvice.io/v1/solve
**/
/** Boucle sur les véhicules
* fleet [
* {
* name : String Nom unique du véhicule (Obligatoire)
* startLocation : String Nom de la localisation de départ (Obligatoire)
* endLocation : String Nom de la localisation de fin (Facultative)
* }
* ]
**/
$fleet = array(
array('name' => "truck1", 'startLocation' => "startend", 'endLocation' => "startend"),
);
/** boucle structurée comme ceci :
* locations [
* {
* name : Nom unique de la localisation
* latitude : Latitude
* longitude : Longitude
* }
* ]
**/
$locs = array(
array( 'name' => "startend", 'latitude' => "50.4723", 'longitude' => "4.83258" ), // Départ et arrivée
array( 'name' => "tache1", 'latitude' => "50.3766", 'longitude' => "4.89706" ), // Tâche 1
array( 'name' => "tache2", 'latitude' => "50.3755", 'longitude' => "4.86095" ), // Tâche 2
array( 'name' => "tache3", 'latitude' => "50.3719", 'longitude' => "4.87840" ), // Tâche 3
array( 'name' => "tache4", 'latitude' => "50.3875", 'longitude' => "4.90065" ), // Tâche 4
array( 'name' => "tache5", 'latitude' => "50.3783", 'longitude' => "4.87253" ), // Tâche 5
array( 'name' => "tache6", 'latitude' => "50.3811", 'longitude' => "4.90994" ), // Tâche 6
array( 'name' => "tache7", 'latitude' => "50.3779", 'longitude' => "4.86896" ), // Tâche 7
array( 'name' => "tache8", 'latitude' => "50.3769", 'longitude' => "4.90505" ), // Tâche 8
);
$jsfleet = json_encode($fleet);
$jstache = json_encode($locs);
$posts = array();
$posts['locations'] = $jstache;
$posts['fleet'] = $jsfleet;
$header = array( 'Content-Type: application/json', 'Authorization Basic: demo:demo' );
//$ch = curl_init("https://demo:[email protected]/demo/vrp");
$ch = curl_init("https://demo:[email protected]/v1/solve");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $posts);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$response = curl_exec($ch);
curl_close ($ch);
echo '<pre>';
print_r($response);
echo '</pre>';Code : Tout sélectionner
{
"errors" : [ {
"errorCode" : "json.duplicate.property",
"explanation" : "Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value",
"line" : 1,
"column" : 3
} ]
} Sauf que je ne comprends rien à leur docs et qu'il n'y à pas d'exemple.Bonjour,
Je pense que vous avez oublier les ordres. “orders”
Example: https://api.solvice.io/demo/vrp
Et aussi le property: “solver”: “VRP”
En vous remerciant d'avance pour votre participation
Wolfy