Bonjour je viens vers vous pour un problème épineux pour moi.
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>';
Et voici le retour
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
} ]
}
Le support ne peut pas m'aider malheureusement, c'est pourquoi je viens vers vous, la réponse du support à mon problème est la suivante :
Sauf que je ne comprends rien à leur docs et qu'il n'y à pas d'exemple.
En vous remerciant d'avance pour votre participation
Wolfy
Bonjour je viens vers vous pour un problème épineux pour moi.
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
[url]https://www.solvice.io/docs/vrp/#introduction[/url]
J'arrive à me connecté, mais pas à envoyer mes tâche et initialiser l'optimalisation de parcours.
Voilà ou j'en suis :
[code]/**
* 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]
Et voici le retour
[code]{
"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
} ]
} [/code]
Le support ne peut pas m'aider malheureusement, c'est pourquoi je viens vers vous, la réponse du support à mon problème est la suivante :
[quote]Bonjour,
Je pense que vous avez oublier les ordres. “orders”
Example: https://api.solvice.io/demo/vrp
Et aussi le property: “solver”: “VRP” [/quote]
Sauf que je ne comprends rien à leur docs et qu'il n'y à pas d'exemple.
En vous remerciant d'avance pour votre participation
Wolfy