Mobile Mondays - Mobizel

Download Mobile Mondays - Mobizel

Post on 16-Apr-2017

1.228 views

Category:

Documents

0 download

TRANSCRIPT

Les services mobiles golocaliss

Les services mobiles golocalissComment les intgrer sur les diffrentes plate-formes ?Mobile Monday Rennes - 06/12/10Yannick Le Duc, Mobizel

Honneur de partager mon exprience dans ce premier Mobile Monday Rennais.Mon but premier : ne pas vous endormir ;-)Le risque de la prsentation : accessible tous, trouver un quilibre entre :Trop compliqu pour les non dveloppeursTrop simplifi pour les dveloppeurs (pas vocation remplacer un bon livre et de lapprentissage ;-))

Mettre mon nom et mobizel en bas de page Logo Mobile Monday, Date, LaCNR Rennes ?

Anecdotes placer/penser :En + des composants de geoloc (GPS, Wifi, Cell), penser au compass et lacclrateurLa prcision samliore progressivement en fonction du temps (Cell en qq secs, puis GPS) : permet de commencer prfetcher des infos par ex1

PlanQuelques usagesO suis-je ?Signale-moi quand japproche de ce point.Quy a-t-il ce lieu ?Un peu de tout aLes plateformes mobilesMobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

Plateformes : il faut faire des choix (en 8 mn)Apple iPhoneGoogle AndroidWindows Phone 7Dans un navigateur : HTML5

Dsol pour les autres (Nokia/Symbian/Meego, Samsung Bada, BlackBerry)

2

O suis-je ?Apple iPhone(Framework Core Location)

On cre un objet CLLocationManager

On choisit la prcisiondesiredAccuracy = kCLLocationAccuracyBest

On choisit la frquence de rafraichissementdistanceFilter = 1000

On dmarrestartUpdatingLocation

On obtient des objets CLLocation :coordinate.latitudecoordinate.longitudehorizontalAccuracyaltitudeverticalAccuracy

Google Android

On cherche un LocationManager (astuce : getBestProvider(criteria, ))

Permissions accorder :ACCESS_FINE_LOCATION ou ACCESS_COARSE_LOCATION

On cre un objet LocationManagerlocationMgr = getSystemService(LOCATION_SERVICE);

On obtient une position parLocation l = locationMgr.getLastKnownLocation(prov);

Ou en continulocationMgr.requestLocationUpdates(prov, t, distance, myLocationListener);

Mobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

iPhone : 1- Assez simple. Les technologies induites sont caches pour le dveloppeur. On ne dit pas, utilise telle ou telle techno. On dfinit la prcision, et la meilleure techno est choisie.2- Prcision en mtre : kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracy HundredMeters, kCLLocationAccuracyKilometer, and kCLLocationAccuracyThree Kilometers3- Par dfaut, le LocationManager va notifier chaque changement dtect. Grce au distanceFilter, on peut choisir de navoir des notifications que quand on a boug dune certaine distance (en mtre)Note :- Comment ca se voit pour lutilisateur.- Attention : pas moy de simuler une localisation sur lmulateur (arg)

Android :Manifest.xml - add one or more uses-permission tags to your manifest to support access to the LBS hardwareAccess to the location-based services is handled using the Location Manager system Service- Depending on the device, there may be several technologies that Android can use to determine the cur- rent location. Each technology, or Location Provider, will offer different capabilities including power con- sumption, monetary cost, accuracy, and the ability to determine altitude, speed, or heading information.Criteria : Power use, Accuracy, Ability to return bearing, speed, and altitude

3

O suis-je ?Blackberry(Java ME Location API)

On spcifie des critres :Prcision : setHorizontalAccuracyConsommation :setPreferredPowerConsumptionAutonomesetCostAllowed

On rcupre un LocationProviderprov = LocationProvider.getInstance(criteria)

On rcupre une positionlocation = provider.getLocation(-1)location.QualifiedCoordinatesNavigateur - HTML5(W3C Geolocation API)

On appelle navigator.geolocation.getCurrentPosition(updatePos)

Paramtres additionnels : enableHighAccuracytimeoutmaximumAge

On reoitfunction updatePos (position) { var lat = position.coords.latitude; var long = position.coords.longitude; // affichage carte ou autre}

Il existe aussi : watchPosition

Mobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

BlackberrySimulation possible dans le simulator-1 est le timeoutApplication Permissions

HTML5Browser specific Tester avant si la fonctionnalit est dispo

coords.latitudedoubledecimal degreescoords.longitudedoubledecimal degreescoords.altitudedouble or nullmeters above the reference ellipsoidcoords.accuracydoublemeterscoords.altitudeAccuracydouble or nullmeterscoords.headingdouble or nulldegrees clockwise from true northcoords.speeddouble or nullmeters/secondtimestamp

4

Signale-moi quand japproche de ce pointApple iPhoneOS4 (Juillet 2010) et le multi-tchestartMonitoringForRegion(desiredAccuracy)AndroidLes Proximity AlertslocationMgr.addProximityAlert(lat, lng, radius, expiration, proximityIntent);Blackberry!HTML5ImpossibleMobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

Limites du systme : trade-off conso lectrique et prcisions En tche de fond, en iOS, on ne fera que de la triangulation de Cell tower donc peu prcis

"wake-on-location".In iOS 4.0 and later, you can use the region monitoring service to define the boundaries for multiple geographical regions. After registering a region using the startMonitoringForRegion:desiredAccuracy: methodhttp://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.htmlInstantiate a CLRegion with a center coordinate and a distance/accuracy filter.Ask the CLLocationManager to begin monitoring for that region.Your CLLocationManager delegate is called when you enter and exit a region.http://longweekendmobile.com/2010/06/30/location-region-data-in-background-on-ios4-iphone/

5

Quy a-t-il ce lieu ?Gocodage (Geocoding), et Reverse Geocoding

Ncessite des Web ServicesGoogle (Maps), Yahoo PlaceFinder, MS Bing Maps, OpenStreetMap, Approche similaire entre les plateformes

Les champs libres, Rennes

48.108807, -1.691895

Reverse Geocoding

(Forward) Geocoding

Mobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

Schma client / serveur / cloud, dans les 2 sens (sur la CNR)

Lat : 48.108807 (N),Long : -1.691895 (W)

Les x + gros services. Ceux fournis dans les SDKs de base

Ex sur LACNR6

Un peu de tout aMixer tout a, DifficileCoteuxLes plateformes de rseaux sociauxTwitterFacebook PlacesLocation As A Service : le GeoFencingSimpleGeoLocationLabs

Mobile Monday Rennes @LaCNR - 06/12/10 - Yannick Le Duc - Mobizel

Developers seeking a better, smarter, and potentially lower-cost way to create location-based mobile apps might want to consider using a location-as-a-service platform

SimpleGeo dbut 2010LocationLabs Juin 2010

Pourquoi intressant : deal with erreurs/imprcisions (statistiques)Ex de code ?

Sixty percent of mobile subscribers worldwide will use an application enabled by location over the next four years or so, says Mark Beccue, a senior analyst at ABI ResearchAn estimated 12 percent of the apps in the iPhone App Store had a location component, according to a recent Apple iTunes report.7

Merci !

Mobizel Crez vos applications mobiles, simplementLancement en janvier 2011

yannick@mobizel.comTwitter : @mobizel

8