posts - 82, comments - 0, trackbacks - 0

My Links

News

Archives

Post Categories

C# Download

Facebook

Informativa cookie

Linkedin

Microsoft

Msdn Gallery

Twitter

VisualBasic

Wiki Tecknet

Il controllo Map con applicazione Metro in Windows8.

In questo esempio vedremo come utilizzare il controllo Map in un'applicazione Metro con il nuovo sistema operativo Windows8.

Per provare questo esempio è necessario avere installata laConsumer Preview di Windows8,per poter aprire il progetto di esempio è necessario VisualStudio11 Beta, almeno la versioneExpress che include modelli per applicazioni metro, ultimo prequisito avere un account BingMap, èpossibile creare l'account a questo link .

Metro e la nuova interfacciaintrodotta da Microsoft con il nuovo sistema operativo Windows8. Una delle novità di questa interfaccia e l'introduzione di WinRt. Con WinRt (Windows Runtime)  è possibile interagirecon il sistema operativo in unmolto più semplice ed intuitivoutilizzando il namespace System.Windows. In passato, per interagire direttamente con leDLL native di Windows si doveva ricorrere all'uso delle Api in maniera differente, era necessario gestire ilmarshalling in maniera corretta e staremolto attenti alla gestione di funzioni ed altro perevitare malfunzionamenti che mettono a grosso rischio lastabilità delsistema operativo stesso.In questo esempio stando in tema di WinRt, vedremo oltre il controllo Map anche laClasse Geolocator inclusa nel namespace System.Device.Geolocation , la quale restituisce la latitudine e longitudine passate poi al controllo map per identificare la zona in cui ci troviamo. 

//Calling dll framework 4.5
using System;
using Bing.Maps;
using Windows.Devices.Geolocation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

//NameSpace BingMapSample
namespace BingMapSample
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class BlankPage : Page
    {
        //Public Constructor of BlankPage
        public BlankPage()
        {
            //InitializeComponent Method
            this.InitializeComponent();
        }

        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        //ClickEvent btnFidnPosition button
        private async void btnFidnPosition(object sender, RoutedEventArgs e)
        {
            //Declare new Intance of Geolocator Class
            var location = new Geolocator();

            /* Retrieval asynchronously to the location where we are, how can you see the word async which indicate
             * that the invoked method executes his work so as not to block the application and then suspend it temporarily,
             * but does everything in the background and returns the result in the operation is finished. All functions that
             * take more than 50 ms with WinRt asynchronous operations are defined.*/
            var myposition = await location.GetGeopositionAsync();

            /*Center with the property we set the latitude and longitude retrieved using the method Asynchronous
             * GetGeopositionAsync we see our actual position. How can we see through the Location class two parameters,
             * latitude and longitude.*/
            BingMapSample.Center = new Location(myposition.Coordinate.Latitude, myposition.Coordinate.Longitude);

            /*This property allows us to set an enumeration using the display mode of the map, we have three mode,
             * Aerial, and Birdseye Road.*/
            BingMapSample.MapType = MapType.Road;

            /*On the inside of these two controls and we enter the latitude and longitude
             * of the location where we are, the two properties mdiante latitude and longitude.*/
            txtLatitude.Text = myposition.Coordinate.Latitude.ToString();
            txtLongitude.Text = myposition.Coordinate.Longitude.ToString();
        }
    }
}

 

Prima di eseguire l'applicazione è necessario attivare l'utilizzo dialcune risorse del sistema operativo,nel nostro caso andremo ad abilitare la risorsa location , facendo doppio click con il mouse sul file Pakage.appxmanifest, selezioniamo la scheda Capabilities , troveremo diverse risorse di sistema , andiamo ad inserire il segno di spunta sulla risorsa location.

Al primo avvio l'applicazione avviserà medianteuna finestra di dialogo di confermare l'autorizzazioneper  la ricerca della posizionedel nostro dispositivo , tutto questo quando verrà eseguito il metodo GetGeopositionAsync().Confermiamo in modo da poter verificare e ottenere la posizione di latitudine e longitudine.

L'applicazione è stata testata conil simulatore disponibile conVisualStudio 11 Beta.

Print | posted on mercoledì 25 aprile 2012 15:20 | Filed Under [ Articoli su C# ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 1 and 8 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET