Condividi tramite


Panoramica dell'utilità di ottimizzazione dei viaggi di Bing Mappe

In questo documento vengono descritte le principali caratteristiche del progetto dell'utilità di ottimizzazione dei viaggi di Bing Mappe, ad esempio come è creato e strutturato e come è compilato.

Nota

Il codice di esempio che corrisponde a questo documento è disponibile nella pagina relativa all'esempio di utilità di ottimizzazione dei viaggi di Bing Mappe.

In questo articolo

  • Creazione di progetti di Visual Studio

  • Compilazione, distribuzione ed esecuzione dell'esempio

  • Flusso di lavoro dell'applicazione

  • Passaggi successivi

Creazione di progetti di Visual Studio in Visual Studio

Se hai scaricato ed estratto l'esempio, puoi aprire il file di soluzione TripOptimizer.sln in Visual Studio per visualizzare il codice. Puoi anche visualizzare l'origine nella pagina della raccolta di esempi MSDN relativa all'esempio dell'utilità di ottimizzazione dei viaggi di Bing Mappe selezionando la scheda Sfoglia il codice.

Quando abbiamo creato i progetti di Visual Studio per l'utilità di ottimizzazione dei viaggi di Bing Mappe, abbiamo utilizzato il modello Applicazione vuota di JavaScript per creare il progetto principale dell'applicazione e il modello Componente di Windows Runtime di Visual C++ creare la libreria di classi C++. Il progetto di JavaScript fa riferimento al progetto di C++. Il documento Creazione di componenti Windows Runtime in C++spiega come impostare un riferimento al progetto.

Per il progetto di JavaScript, il modello Applicazione vuota fornisce la funzionalità di base necessaria per eseguire l'applicazione come un'app di Windows Store. Utilizza questo modello per creare un'applicazione vuota. Visual Studio include modelli aggiuntivi che offrono funzionalità iniziale avanzata. L'utilità di ottimizzazione dei viaggi di Bing Mappe utilizza i file predefiniti forniti con il modello Applicazione vuota e aggiunge file di codice e di immagine aggiuntivi.

Un'importante impostazione di progetto nel modello Libreria di classi WinRT è data dall'opzione /ZW che consente l'utilizzo delle estensioni del linguaggio Windows Runtime.

Avviso

L'opzione /ZW non è compatibile con opzioni come /clr. Ciò significa che lo stesso progetto di Visual C++ non può essere destinato sia a .NET Framework sia a Windows Runtime.

Ogni app in Windows Store in Windows Store viene fornita come pacchetto di app. Un pacchetto di app contiene un manifesto del pacchetto che contiene a sua volta informazioni sull'app. Puoi ad esempio specificare le relative funzionalità che definiscono l'accesso alle risorse di sistema protette o ai dati utente. Se stabilisci che l'app richiede determinate funzionalità, utilizza il manifesto del pacchetto per dichiararle. L'utilità di ottimizzazione dei viaggi di Bing Mappe specifica Internet (Client) per consentire all'app di accedere ai servizi Web di Bing Mappe. Per ulteriori informazioni sulle funzionalità e sui pacchetti di app, vedi App packages and deployment.

Per ulteriori informazioni sulle funzionalità e sui componenti disponibili nell'ambiente di sviluppo integrato (IDE) di Visual Studio per i progetti di JavaScript, C++ e .NET, vedi Develop Windows Store apps using Visual Studio.

[All'inizio]

Compilazione, distribuzione ed esecuzione dell'esempio

Compila un progetto di app in Windows Store seguendo la stessa procedura utilizzata per la compilazione di un progetto standard Sulla barra dei menu scegli Compila soluzione dal menu Compila. Il codice viene compilato e compresso in un pacchetto per essere utilizzato come app in Windows Store.

Al termine della compilazione del progetto, è necessario distribuirlo Sulla barra dei menu scegli Distribuisci soluzione dal menu Compila. Quando esegui l'app dal debugger, Visual Studio distribuisce il progetto.

Dopo avere distribuito il progetto, scegli la sezione dell'utilità di ottimizzazione dei viaggi di Bing Mappe per eseguire l'app. In alternativa, scegli Debug, Avvia debug dalla barra dei menu di Visual Studio. Assicurati che TripOptimizerWebApp sia il progetto di avvio.

Nota

Per eseguire questo esempio, devi disporre di una chiave di Bing Mappe. Per informazioni su come ottenere una chiave di Bing Mappe, vedi Getting a Bing Maps Key.

[All'inizio]

Flusso di lavoro dell'applicazione

Ecco di seguito il flusso di lavoro dell'app.

  1. Immetti fino a 25 località per l'itinerario. La prima voce specifica sia la località di partenza sia la località di destinazione.

    Suggerimento

    Puoi selezionare Parks Demo o Delivery Demo per popolare l'area delle località con valori predefiniti.

  2. Seleziona il tipo di viaggio (a piedi o in auto), l'unità di distanza (chilometri o miglia) e le opzioni di ottimizzazione (minor distanza, minor tempo o strade con minor traffico).

  3. Se desideri, specifica gli input per l'algoritmo di ottimizzazione e se utilizzare o meno il calcolo parallelo. Il calcolo parallelo è abilitato per impostazione predefinita.

    Nota

    La sezione Opzioni avanzate è intesa come strumento di apprendimento per gli sviluppatori. Queste opzioni non faranno parte di un'app.

  4. Scegli Ottieni indicazioni per avviare il processo. La parte JavaScript dell'app passa le località e le opzioni al componente di Windows Runtime C++. Il componente C++ esegue le operazioni seguenti:

    1. Utilizza i servizi REST (Representational State Transfer) di Bing Mappe per recuperare la latitudine e la longitudine di ogni località. Come parte della risposta, Bing Mappe include tutte le possibilità che corrispondono alla località.

    2. Per tutti le località con più possibilità, visualizza tutte le possibilità nell'interfaccia utente e torna al passaggio 1.

    3. Utilizza i servizi REST di Bing Mappe per recuperare la distanza (a piedi o in auto) da ogni località a ogni altra località. Questo passaggio utilizza la latitudine e la longitudine ottenute nel passaggio a.

    4. Calcola l'itinerario ottimizzato tra tutte le località e lo passa alla parte JavaScript dell'app.

  5. La parte HTML/JavaScript visualizza le indicazioni di viaggio dettagliate e utilizza il controllo AJAX di Bing Mappe per visualizzare l'itinerario ottimizzato.

  6. Puoi interagire con la mappa. Quando scegli un punto o una località dalle indicazioni di viaggio, il controllo AJAX si sposta su quel punto o su quella località e aggiunge una puntina alla mappa.

Ecco una visualizzazione semplificata del flusso di lavoro.

Flusso di lavoro dell'applicazione

Il componente di C++ utilizza i servizi REST di Bing Mappe in due fasi. La prima fase aiuta l'utente a verificare che Bing Mappe possieda le località corrette. Se ad esempio specifichi "Pittsburgh", Bing Mappe potrebbe restituire "Pittsburgh, PA", "Pittsburgh, ON" e "Pittsburgh, GA" come possibilità. Se le ambiguità vengono risolte all'inizio del processo, la seconda fase, che recupera la distanza da un punto a ogni altro punto, può terminare senza incontrare ulteriori problemi di ambiguità.

Nota

Avremmo potuto eseguire la comunicazione con i servizi REST di Bing Mappe nella parte JavaScript dell'app, ma l'abbiamo aggiunta al componente C++ perché desideravamo illustrare come comunicare con un'interfaccia REST e analizzare la risposta XML da C++.

[All'inizio]

Passaggi successivi

Per informazioni sull'uso di JavaScript nell'app dell'utilità di ottimizzazione dei viaggi di Bing Mappe, leggi Utilizzo di JavaScript nell'esempio di utilità di ottimizzazione dei viaggi di Bing Mappe.

[All'inizio]