Ci si potrebbe chiedere che cos'è il file di dati e cosa si deve caricare.You might be wondering – what is the data file and what should you be uploading?Ai fini di questo test, è possibile usare semplicemente l'esempio basato su pipe che delimita un'area del porto di San Francisco:For the purposes of this test, we can just use the sample pipe-based that frames an area of the San Francisco waterfront:

Se si fa clic su Edit (Modifica), si potrà vedere un riepilogo delle posizioni inserite:If you choose Edit, you will be able to see (at a glance) what locations you introduced in it:

A questo punto, il portale non visualizza i limiti del recinto virtuale creato. È sufficiente avere la conferma che la posizione specificata sia in prossimità del punto corretto.At this point, the portal does not show you the boundaries for the geofence that you created – all you need is confirmation that the location specified is in the right vicinity.

L'opzione da esaminare è Query URL .The Query URL is what we’re after here.Si tratta dell'endpoint su cui è possibile eseguire query per verificare se il dispositivo si trova o meno entro i limiti di una posizione.This is the endpoint against which we can execute queries to check whether the device is currently within the boundaries of a location or not.Per eseguire questa verifica è sufficiente eseguire una chiamata GET con l'URL della query, aggiungendo i parametri seguenti:To perform this check, we just execute a GET call against the query URL, with the following parameters appended:

In questo modo si specifica un punto di destinazione ottenuto dal dispositivo e Bing Maps esegue automaticamente i calcoli per vedere se si trova all'interno del recinto virtuale.That way you're specifying a target point that we obtain from the device and Bing Maps will automatically perform the calculations to see whether it is within the geofence.Dopo l'esecuzione della richiesta tramite un browser (o cURL), si otterrà una risposta JSON standard:Once you execute the request through a browser (or cURL), you will get a standard JSON response:

Questa risposta viene restituita solo quando il punto è effettivamente entro i limiti designati.This response only happens when the point is actually within the designated boundaries.In caso contrario, si otterrà un bucket results vuoto:If it is not, you will get an empty results bucket:

Configurazione dell'applicazione UWPSetting up the UWP application

Ora che l'origine dati è pronta, è possibile iniziare a utilizzare l'applicazione UWP avviata in precedenza.Now that we have the data source ready, we can start working on the UWP application that we bootstrapped earlier.

Se sono presenti risultati per la query, significa che il punto specificato si trova entro i limiti del recinto virtuale, quindi viene restituito true.If there are results to the query, that means that the specified point is within the boundaries of the geofence, so we return true.Se non sono presenti risultati, significa che il punto è all'esterno del frame di ricerca, quindi viene restituito false.If there are no results, Bing is telling us that the point is outside the lookup frame, so we return false.

Tornare a NotificationsController.cse creare un controllo prima dell'istruzione switch:Back in NotificationsController.cs, create a check right before the switch statement:

Tornando all'app UWP si sarà in grado di testare le notifiche.Going back to the UWP app, we should now be able to test notifications.Nella classe LocationHelper creare una nuova funzione SendLocationToBackend:Within the LocationHelper class, create a new function – SendLocationToBackend:

Scambiare POST_URL con il percorso dell'applicazione Web distribuita creata nella sezione precedente.Swap the POST_URL to the location of your deployed web application that we created in the previous section.Per ora è possibile eseguirla in locale, ma quando si lavora alla distribuzione di una versione pubblica, sarà necessario ospitarla presso un provider esterno.For now, it’s OK to run it locally, but as you work on deploying a public version, you will need to host it with an external provider.

Poiché non vengono passate le coordinate reali (è possibile che al momento non ci si trovi entro i limiti) e si usano valori di test predefiniti, al momento dell'aggiornamento verrà visualizzata una notifica:Because we are not passing the real coordinates (which might not be within the boundaries at the moment) and are using predefined test values, we will see a notification show up on update:

Passaggi successiviNext steps

È possibile eseguire un paio di passaggi oltre a quelli descritti per assicurarsi che la soluzione sia pronta per la produzione.There are a couple of steps that you might need to follow in addition to the above to make sure that the solution is production-ready.