Toutes les applications

§ Application / Optimiseur de flotte

Vérifier et résoudre un scénario Google Route Optimization avec unmap

Comment l'Optimiseur de flotte d'unmap est construit : ouvrir un fichier de requête Route Optimization, voir quels champs unmap prend en charge, le résoudre sur le réseau routier canadien et consulter le plan sur une carte et une ligne du temps.

L'Optimiseur de flotte s'adresse aux équipes qui planifient déjà leurs tournées avec Google Maps Platform Route Optimization. Ouvrez le fichier de requête que votre code envoie, ou le ZIP exporté par la Fleet Routing App de Google, et voyez tout de suite ce qu'unmap prend en charge. Résolvez ensuite le scénario avec l'API Optimize et consultez le plan : quel véhicule prend quel envoi, dans quel ordre, avec l'horaire et les distances sur une carte en direct. L'application est en ligne à apps.unmap.dev/fleet-optimizer, et son code source est un projet Next.js autonome que vous pouvez cloner et exécuter avec votre propre clé.

Votre fichier reste dans votre navigateur. Il est lu dans la page et n'est envoyé qu'à api.unmap.dev, pour le vérifier et le résoudre, et rien n'est conservé. Les scénarios d'ouverture sont des exemples écrits par unmap. unmap n'est ni affilié à Google ni approuvé par Google; Google Route Optimization n'est nommé que pour indiquer quels fichiers de requête l'application lit.

Ce qu'elle fait

  • Ouvrir un scénario : un fichier .json contenant une requête, un .zip de la Fleet Routing App avec scenario.json et, si vous l'avez, solution.json, ou l'un des trois exemples fournis (livraisons du dernier kilomètre à Calgary, techniciens avec pauses à Ottawa, coursier de collecte et livraison à Montréal).
  • Le vérifier, gratuitement : la requête est envoyée avec VALIDATE_ONLY, et un rapport de compatibilité indique si elle est prête, demande des changements ou est hors de portée. Chaque champ refusé est listé avec son chemin, le message d'unmap et son code. Les champs qu'unmap accepte mais ignore sont listés comme avertissements.
  • Retirer ce qui n'est pas encore pris en charge : les champs refusés avec FIELD_NOT_SUPPORTED_YET peuvent être retirés en une étape, puis la requête est vérifiée de nouveau. Tout le reste, comme un identifiant de lieu ou une valeur mal formée, reste bloquant et le rapport dit quoi modifier dans le fichier. Une fois des champs retirés, chaque vue de résultat et le scenario.json téléchargé portent les chemins retirés. Votre fichier d'origine n'est jamais modifié.
  • Paramètres de résolution : un délai, le mode de recherche, et des déplacements sur route ou en ligne droite. La ligne droite est imposée, avec un avis, lorsqu'un arrêt se trouve hors du Canada, où le réseau routier s'arrête.
  • Le plan : une couleur par véhicule sur la carte, des arrêts numérotés et des entrepôts, une ligne du temps des visites, des déplacements, des attentes et des pauses de chaque véhicule, le coût total et chacune de ses composantes, et les envois écartés avec leurs raisons.
  • Comparer avec le plan de Google : si le téléversement comprenait solution.json, les deux plans sont côte à côte. Ils reposent sur des temps de déplacement différents; la vue le dit et ne désigne pas de gagnant.
  • Télécharger : la réponse d'unmap en JSON, ou un ZIP que la Fleet Routing App peut ouvrir.

Ce qu'elle coûte en appels d'API

Une vérification est gratuite : VALIDATE_ONLY ne résout rien et n'est jamais facturé. Une résolution est facturée selon les envois qu'elle exécute, et les totaux affichent ce nombre. Vérifier de nouveau après avoir retiré des champs est un autre appel gratuit. Ouvrir un fichier, changer les paramètres et télécharger n'appellent rien.

L'application hébergée utilise sa propre clé du forfait Hobby : elle résout jusqu'à 25 envois et 5 véhicules. Un scénario plus grand peut quand même être vérifié; la résolution est désactivée et les nombres sont affichés. Clonez l'application et utilisez votre propre clé pour obtenir les limites de votre forfait.

Construite à partir du registre, sans modification

La carte, les tracés d'itinéraire et les fenêtres d'arrêt sont des éléments du registre copiés tels quels, et le code de l'application n'appelle l'API que par @unmap/sdk. Installer les mêmes pièces dans votre projet tient en une commande :

npx @unmap/cli add map route-line marker-popup

La lecture du fichier, le rapport, le retrait de champs, l'application des paramètres et le résumé du plan sont du TypeScript simple, sans React (lib/scenario et lib/plan), testés et faciles à reprendre dans votre propre application.

Ce qu'elle ne fait pas

  • Modifier le scénario. Vous pouvez changer les paramètres de résolution; les envois et les véhicules se modifient dans le fichier.
  • Réévaluer le plan de Google avec les temps de déplacement d'unmap. Cela exige des solutions injectées, qui ne sont pas encore prises en charge.
  • Calculer des trajets routiers hors du Canada, ni chercher des identifiants de lieu. Les deux sont signalés, non contournés.
  • Retirer des champs qui changent le problème lui-même. Seuls les champs pas encore pris en charge peuvent l'être.
  • Rien conserver. Il n'y a ni compte ni scénario enregistré; tout reste dans le navigateur.

L'exécuter vous-même

Il vous faut Git, Node.js 24, pnpm et une clé de navigateur du tableau de bord qui autorise http://localhost:3208.

git clone --depth 1 https://github.com/unmap-dev/fleet-optimizer.git
cd fleet-optimizer
pnpm install --frozen-lockfile
cp .env.example .env.local

Réglez NEXT_PUBLIC_UNMAP_KEY dans .env.local sur votre clé, lancez pnpm dev et ouvrez localhost:3208. Les exemples sont livrés dans data/. La référence de l'API Optimize couvre la requête et les champs qu'unmap prend en charge, et celle de l'API Maps couvre les cartes de base.