27
WPReborn 2013 Orientarsi in un'applicazione: Nokia Maps @dnlombardia #wpreborn Nicolò Carandini nicolo.carandini@domusdotn et.org blogs.ugidotnet.org/Nick60 @TPCWare

Nokia maps

Embed Size (px)

Citation preview

Page 1: Nokia maps

WPReborn 2013Orientarsi in un'applicazione: Nokia Maps

@dnlombardia#wpreborn

Nicolò [email protected]/Nick60@TPCWare

Page 2: Nokia maps

Location Service API

Map Control and Services

Location Tracking in Background

Agenda

Page 3: Nokia maps

Location Service API

Page 4: Nokia maps

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

Page 5: Nokia maps

Principali novità• Tracking periodico e per variazione di

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

Page 6: Nokia maps

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;}

Page 7: Nokia maps

Posizione (singola richiesta)Demo

Page 8: Nokia maps

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;}

Page 9: Nokia maps

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

Page 10: Nokia maps

Map Control and Services

Page 11: Nokia maps

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

Page 12: Nokia maps

Windows Phone Maps Services

Geocoding Latitudine, Longitudine -> Indirizzo

Reverse Geocoding Indirizzo -> Latitudine, Longitudine

RoutingRouteQuery, Route, RouteLeg, RouteManeuver

Page 13: Nokia maps

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

Page 14: Nokia maps

Nuovi Launcher

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

Page 15: Nokia maps

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

Page 16: Nokia maps

Location Tracking in Background

Page 17: Nokia maps

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

Page 18: Nokia maps

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

Page 19: Nokia maps

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

Page 20: Nokia maps

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

Page 21: Nokia maps

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.

Page 22: Nokia maps

App Lifecycle Events

PhoneApplicationServiceLaunchingDeactivated

RunningInBackgroundActivatedClosed

Page 23: Nokia maps

Application Lifecycle

running

deactivated

suspended

activated

tombstoned

Activ

ated

deactivated

Deactivated

Page 24: Nokia maps

Application Lifecycle - Location Tracking

running

running in backgrou

nd

suspended

activated

tombstoned

Activ

ated

RunningInB

g

deactivated

Page 25: Nokia maps

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

Page 26: Nokia maps

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)

Page 27: Nokia maps

@dnlombardia#wpreborn

Nicolò [email protected]/Nick60@TPCWare

WPReborn 2013Orientarsi in un'applicazione: Nokia Maps