Nokia maps

Preview:

Citation preview

WPReborn 2013Orientarsi in un'applicazione: Nokia Maps

@dnlombardia#wpreborn

Nicolò Carandininicolo.carandini@domusdotnet.orgblogs.ugidotnet.org/Nick60@TPCWare

Location Service API

Map Control and Services

Location Tracking in Background

Agenda

Location Service API

Location Service per Windows Phone 8

.Net API

WinRT API

Track location changesDesired accuracy Movement thresholdPositionChangedStatusChangedStart & Stop

A-GPS

Wi-Fi

Cell

Periodic and distance based trackingDesired accuracy in metersSingle location requestCaching and timeoutPosition source

Principali novità• Tracking periodico e per variazione di

posizione• Precisione richiesta (in metri)• Timeout• Singola richiesta (senza tracking)• Sorgente (GPS / Wi-Fi / Cell)

Richiesta singola (senza tracking)public async Task<Geocoordinate> GetSinglePositionAsync(){ Geolocator geolocator = new Geolocator();  geolocator.DesiredAccuracyInMeters = 10;

Geoposition geoposition = await geolocator.GetGeopositionAsync(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(30));

return geoposition.Coordinate;}

Posizione (singola richiesta)Demo

Location Trackingprivate Geolocator trackingGeolocator;private TypedEventHandler<Geolocator, PositionChangedEventArgs> positionChangedHandler; public void StartTracking(){ trackingGeolocator = new Geolocator();

trackingGeolocator.MovementThreshold = 100; // or trackingGeolocator.ReportInterval = (uint)TimeSpan.FromSeconds(30).TotalMilliseconds;

  positionChangedHandler = (geolocator, eventArgs) => {}; trackingGeolocator.PositionChanged += positionChangedHandler;}public void StopTracking(){ trackingGeolocator.PositionChanged -= positionChangedHandler;}

Best Practice

Se non vi serve il tracking, usate le richieste singole

Utilizzate il caching per avere maggior velocità di risposta

Trovate il giusto compromesso tra precisione e timeout

Verificate che il Wi-Fi sia acceso, e in caso contrario suggerite all’utente di farlo

Map Control and Services

Windows Phone 8 Map Control

Nokia Mapping DataPiù di 110 paesi, mappe vettoriali 3D, nuovi modi di visualizzazione

Offline MapsScaricabili dagli utenti, disponibilità di task di download e update

Map ControlVeloce e reattivo, consente la rotazione e l’inclinazione della mappa

Route DisplayFacilità di visualizzazione delle Route calcolate con i Maps Service

Windows Phone Maps Services

Geocoding Latitudine, Longitudine -> Indirizzo

Reverse Geocoding Indirizzo -> Latitudine, Longitudine

RoutingRouteQuery, Route, RouteLeg, RouteManeuver

Windows Phone Map and Services API

Map Control

Service API

Map ToolkitExtensions

ID_CAP_MAP and ID_CAP_LOCATION Developer Token assegnato tramite il Windows Phone Developer Center

.Net

Windows Phone Toolkit:

MapsUserControlPushPinToGeoCoordinate

Nuovi Launcher

In Windows Phone 8 ci sono nuovi Maps launcher:• MapsTask• MapsDirectionsTask• MapDownloaderTask• MapUpdaterTask

Windows Phone 7.x Maps API

Nelle applicazioni Windows Phone 7.x si continua ad usare:• Maps Control• Bing Maps Task

Nelle applicazioni Windows Phone 8 l’uso è deprecato.L’unico scenario in cui può aver senso utilizzarli è l’aggiornamento alla versione 8 di un’applicazione 7.x

Location Tracking in Background

Location Tracking in BackgroundAbilita il tracking anche quando la nostra App viene disattivata

App manifest:<defaultTask Name="_default" NavigationPage="MainPage.xaml" >    <BackgroundExecution>      <ExecutionType Name="LocationTracking" />    </BackgroundExecution ></defaultTask>

17

Limiti dell’esecuzione in Background

Solo applicazioni XAML

Un’applicazione alla volta può fare background tracking

Le App hanno accesso limitato alle risorse di sistema

18

Resource ManagementL’uso della CPU è limitato al 10%L’applicazione che gira in background ha accesso a:• Location• Audio\Speech• Network• Storage• Sensori

Nessun accesso a:• Camera e Microfono• ShellTile.Update

User Awareness and ControlCapability:ID_CAP_LOCATION

L’utente può chiudere l’App che sta girando in background

L’utente può disabilitare la funzionalità di background tracking di ciascuna App

DeactivationL’ App smette di girare in background se:• L’ App ferma il tracking• L’utente disabilita i Location Service• Sono passate almeno 4 ore dall’ultima volta in cui l’App è stata in

foreground• Il Battery Saver è ON• Un’altra App che fa uso di Location Tracking va in background• C’è poca memoria

Quando l’App viene disattivata viene fornito il motivo:• DeactivationReason

E’ fondamentale avvertire l’utente.

App Lifecycle Events

PhoneApplicationServiceLaunchingDeactivated

RunningInBackgroundActivatedClosed

Application Lifecycle

running

deactivated

suspended

activated

tombstoned

Activ

ated

deactivated

Deactivated

Application Lifecycle - Location Tracking

running

running in backgrou

nd

suspended

activated

tombstoned

Activ

ated

RunningInB

g

deactivated

Consigli per il Background TrackingUsate l’output vocale e i toast

Informate l’utente se l’App viene disattivata

Fermate i timer attivi e le animazioni

Fermate il tracking della posizione se non è più necessario

Ottimizzate per il Fast Resume

Per saperne di piùA breve una serie di articoli e progetti demo relativi al Map Control e Servizi su DomusDotNet (www.domusdotnet.org)

Deep dive su Background Tracking e Fast Resume nella prossima sessione ai Community Days 2013 (www.communitydays.it)

Forse* una sessione sull’applicazione Decoro Urbano, con particolare riguardo alla georeferenziazione delle foto e ai pushpin singoli o in cluster, a Codemotion (roma.codemotion.it)

(* Se sarà accettata la call for paper)

@dnlombardia#wpreborn

Nicolò Carandininicolo.carandini@domusdotnet.orgblogs.ugidotnet.org/Nick60@TPCWare

WPReborn 2013Orientarsi in un'applicazione: Nokia Maps

Recommended