Vue d'ensemble de l'exemple de l'optimiseur de voyage Bing Maps

Ce document décrit les caractéristiques fondamentales du projet Optimiseur de voyage Bing Maps, par exemple comment il est créé, structuré et généré.

Notes

L'exemple de code qui correspond à ce document se trouve dans l'Exemple Optimiseur de voyage Bing Maps.

Dans cet article

  • Création des projets Visual Studio

  • Génération, déploiement et exécution de l'exemple

  • Flux de travail de l'application

  • Étapes suivantes

Création des projets Visual Studio dans Visual Studio

Si vous avez téléchargé et extrait l'exemple, ouvrez le fichier solution TripOptimizer.sln dans Visual Studio pour visualiser le code. Vous pouvez également consulter le code source dans l'Exemple Optimiseur de voyage Bing Maps sur la page Galerie d'exemples MSDN, dans l'onglet Parcourir le code.

Lorsque nous avons créé les projets Visual Studio pour l'optimiseur de voyage Bing Maps, nous avons utilisé le modèle Application vide JavaScript pour créer le projet d'application principal et le modèle Composant Windows Runtime Visual C++ pour créer la bibliothèque de classes C++. Le projet JavaScript fait référence au projet C++. Le document Création de composants Windows Runtime en C++ explique comment définir une référence de projet.

Pour le projet JavaScript, le modèle Application vide fournit les fonctionnalités de base requises pour fonctionner comme une application Windows Store. Utilisez ce modèle pour créer une application vide. Visual Studio comporte les modèles supplémentaires qui fournissent les fonctionnalités initiales améliorées. L'optimiseur de voyage Bing Maps utilise les fichiers par défaut qui accompagnent le modèle Application vide et ajoute les fichiers image et les fichiers de code supplémentaires.

L'un des paramètres de projet importants du modèle Bibliothèque de classes WinRT est l'option /ZW, qui permet au programme d'utiliser les extensions de langage Windows Runtime.

Avertissement

L'option /ZW n'est pas compatible avec les options telles que /clr. Cela signifie que vous ne pouvez pas cibler à la fois le .NET Framework et le Windows Runtime depuis le même projet Visual C++.

Chaque application Windows Store figurant dans le Windows Store se présente sous la forme d'un package d'application. Un package d'application contient un manifeste de package qui contient des informations sur l'application. Par exemple, vous pouvez spécifier ses fonctionnalités, qui définissent son accès aux ressources système protégées ou aux données utilisateur. Si vous déterminez que votre application requiert certaines fonctionnalités, utilisez le manifeste de package pour les déclarer. L'optimiseur de voyage Bing Maps spécifie Internet (client) pour permettre à l'application d'accéder aux services Web Bing Maps. Pour plus d'informations sur les packages et fonctionnalités d'application, consultez App packages and deployment.

Pour plus d'informations sur les fonctionnalités et les composants disponibles dans l'environnement de développement intégré (IDE) de Visual Studio pour les projets JavaScript, C++ et .NET, consultez Develop Windows Store apps using Visual Studio.

[Haut]

Génération, déploiement et exécution de l'exemple

Générez un projet d'application Windows Store, en procédant de la même manière que pour un projet standard (Dans la barre de menus, sélectionnez Générer, puis Générer la solution). Lors de l'étape de génération, le code est compilé, puis empaqueté, en vue d'être utilisé en tant qu'application Windows Store.

Une fois le projet généré, vous devez le déployer (Dans la barre de menus, sélectionnez Générer, puis Déployer la solution). Visual Studio déploie également le projet lorsque vous exécutez l'application à partir du débogueur.

Après avoir déployé le projet, choisissez la mosaïque de l'optimiseur de voyage Bing Maps pour exécuter l'application. Sinon, dans Visual Studio, dans la barre de menus, sélectionnez Déboguer, puis Démarrer le débogage. Assurez-vous que TripOptimizerWebApp est le projet de démarrage.

Notes

Une clé Bing Maps est requise pour exécuter cet exemple. Pour plus d'informations sur l'obtention d'une clé Bing Maps, consultez Getting a Bing Maps Key.

[Haut]

Flux de travail de l'application

Voici le flux de travail de l'application.

  1. Entrez jusqu'à 25 lieux pour le voyage. La première entrée spécifie le lieu de départ et d'arrivée.

    Conseil

    Vous pouvez sélectionner Parks Demo ou Delivery Demo pour indiquer les valeurs prédéfinies dans la zone des lieux.

  2. Sélectionnez la méthode de déplacement (en véhicule ou à pied), l'unité de distance (miles ou kilomètres) et la méthode d'optimisation (réduire la distance, réduire le temps ou éviter le trafic).

  3. Si vous le souhaitez, spécifiez les entrées pour l'algorithme d'optimisation et si le calcul parallèle doit être utilisé. Le calcul parallèle est activé par défaut.

    Notes

    La section Options avancées est incluse comme outil d'apprentissage pour les développeurs. Ces options ne sont pas destinées à faire partie d'une application.

  4. Choisissez Get directions pour démarrer le processus. La partie JavaScript de l'application passe les lieux et les options au composant Windows Runtime C++. Le composant C++ exécute les étapes suivantes :

    1. Il utilise les services Bing Maps REST (Representational State Transfer) pour récupérer la latitude et la longitude de chaque lieu. Dans le cadre de la réponse, Bing Maps inclut toutes les possibilités qui correspondent à la chaîne du lieu.

    2. Pour tous les lieux qui ont plusieurs possibilités, il affiche toutes les possibilités de l'interface utilisateur et retourne à l'étape 1.

    3. Il utilise les services Bing Maps REST pour récupérer la distance (en véhicule ou à pied) entre chaque lieu et chaque autre lieu. Cette étape utilise les valeurs de latitude et de longitude qui ont été obtenues à l'étape a.

    4. Il calcule l'itinéraire optimisé pour tous les lieux et transmet l'itinéraire à la partie JavaScript de l'application.

  5. La partie HTML/JavaScript affiche les instructions de déplacement pas à pas et utilise le contrôle Bing Maps AJAX pour afficher l'itinéraire optimisé.

  6. Vous pouvez interagir avec la carte. Lorsque vous sélectionnez une étape ou un lieu dans les instructions de voyage, le contrôle AJAX se déplace vers cette étape ou ce lieu et ajoute une punaise à la carte.

L'illustration suivante présente une vue plus basique du flux de travail.

Flux de travail de l'application

Le composant C++ utilise les services Bing Maps REST en deux phases. La première phase aide l'utilisateur à vérifier que Bing Maps contient les lieux adéquats. Par exemple, si vous spécifiez « Pittsburgh », Bing Maps peut retourner « Pittsburgh, PA », « Pittsburgh, ON » et « Pittsburgh, GA » comme possibilités. Lorsque des ambiguïtés sont résolues tôt dans le processus, la deuxième phase, dans laquelle la distance entre chaque point et chaque autre point est récupérée, peut s'exécuter sans rencontrer de lieux ambigus.

Notes

Nous pourrions avoir exécuté la communication avec les services Bing Maps REST dans la partie JavaScript de l'application. Nous l'avons ajoutée au composant C++ car nous voulions illustrer comment communiquer avec une interface REST et analyser la réponse XML à partir de C++.

[Haut]

Étapes suivantes

Lisez Utilisation de JavaScript dans l'exemple de l'optimiseur de voyage Bing Maps pour plus d'informations sur la façon dont JavaScript est utilisé dans l'application Optimiseur de voyage Bing Maps.

[Haut]