Avmystifisering av iOS-stedbaserte tjenester for å forbedre nøyaktigheten

Fra den ydmyke begynnelsen av epoken for mobile enheter har telekommunikasjonsleverandører og applikasjonsutviklere hatt muligheten til å geografisere en enhet. Tidlige ikke-så-smarte enheter brukte triangulering - nærmere bestemt trilaterering - for å kartlegge en brukers beliggenhet. Etter hvert som maskinvare og støtteteknologi utviklet seg, ble satellittbaserte navigasjonsfunksjoner lagt til mobile enheter. I tillegg inkluderer hver nåværende Apple mobil enhet et akselerometer for måling av hastighet og et magnetometer for å bestemme en enhets retning.

Apples iOS 6 introduserte utviklere til et mye forbedret Core Location framework (PDF). Det nye rammeverket drar full nytte av dagens maskinvare for å tilby en robust pakke med lokasjonsbaserte tjenester. Selv om trilaterering eller global posisjonering alene gir rimelig nøyaktighet, bruker Apple flere teknikker unisont for å gi nøyaktige lokasjonskoordinater for enheten. For å sette pris på kompleksiteten i iOS-lokasjonsbaserte tjenester, må vi forstå vitenskapen og matematikken bak trilaterering, assistert global posisjonering og Apples bruk av crowd-sourced Wi-Fi.

trilateration

Triangulering og trilaterering er to matematiske prosesser for å bestemme plasseringen av et punkt. Triangulering bruker en prosess for å måle vinkler fra kjente steder - for eksempel celletårn - for å beregne gjeldende posisjon. Trilaterering bestemmer plasseringen av en enhet ved å beregne skjæringspunktet mellom sirkler eller kuler som representerer avstanden til en enhet fra kjente steder. Nøyaktigheten til disse tilnærmingene forbedres ettersom mer faste steder brukes i beregningene.

Signalstyrke brukes til å forutsi avstanden til en enhet fra forskjellige celletårn. Med celletårnets faste beliggenhet kjent, etableres en avstandsradius. Uten krysset av sirkler fra en andre eller tredje celletårnposisjon, kan vi bare bestemme at enheten befinner seg et sted på omkretsen til avstandssirkelen (figur A) . En Omni-retningsantenn på celletårnet kan begrense plasseringen av en mobil enhet, men ikke nær nok til å tilfredsstille kravene til dagens iOS-apper.

Figur A

Når mobiltelefon-aktiverte mobile enheter beveger seg, er det vanlig - spesielt i tettbygde områder - at enheten kommuniserer samtidig med flere celletårn. Hvis to celletårn er i kommunikasjon med enheten, kan vi utlede to mulige steder fra de to kryssende punktene (figur B) . Det beste tilfellet er imidlertid å utnytte informasjonen fra minst tre celletårn for å finne et sted som er representert ved det ene krysset mellom tre sirkler eller sfærer (figur C) .

Figur B

Figur C

Globalt navigasjonssystem

Globale navigasjonssystemer, som GPS, gir muligheten til å finne en enhet ved å bruke kjente koordinater for satellitter i motsetning til celletårn. Trilateration brukes til å finne krysningspunktet mellom kuler for å bestemme plasseringen av en GPS-aktivert mobilenhet. GPS-maskinvare er energikrevende, og kan raskt tømme batteriet på en mobil enhet. Apple bruker den mer effektive AGPS-prosessen (Assisted Global Positioning) for å lokalisere og koble til satellitter. Med AGPS hentes satellittposisjonering fra en mobil- eller Wi-Fi-forbindelse, noe som reduserer tiden det tar å oppdage en satellitt.

Crowd-Sourcing

Apple utnytter mengden med informasjon fra publikum for å (1) finjustere nøyaktigheten til posisjonsbaserte tjenester på mobiltelefoner og GPS-aktiverte enheter, og (2) aktivere posisjonsbaserte tjenester på ikke-mobilenheter eller bare Wi-Fi-enheter.

Wi-Fi fra folkemengdene er den desidert mest innovative tilnærmingen for å bestemme plasseringen av en mobil enhet. Apple bruker en database med Wi-Fi-hotspots og lokasjoner i celletårnene - sendt anonymt av et hvilket som helst antall iOS-mobile enheter - for å bestemme koordinatene til en enkelt mobil enhet. Wi-Fi-informasjon om mobiltelefoner, AGPS og publikum blir brukt til å mate nøyaktige data til iOS-stedbaserte tjenester. Apples iOS Core Location-rammeverk gjør det mulig å utføre komplekse oppgaver med bare noen få kodelinjer.

Bruke stedsbaserte tjenester

IOS-stedbaserte tjenester leverer enkle metoder for å bestemme en enhets nåværende plassering. Det første trinnet i å bruke stedsbaserte tjenester er å legge Core Location Framework til iOS-prosjektet ditt. Med rammeverket koblet, kan du få tilgang til standard lokasjonstjeneste, betydelig endringstjeneste og regionovervåkingsfunksjon i appen din.

Følg disse trinnene for å legge til Core Location Framework (Figur D) :

Figur D

Velg "mål" -appen i venstre navigasjon i prosjektvinduet.

Velg fanen "Sammendrag" og bla ned til seksjonen Koblede rammer og biblioteker.

Klikk på "+" -knappen, velg CoreLocation og klikk "Legg til".

Med Core Location Framework koblet til prosjektet ditt, kan du legge til en #import-referanse for overskriftsfilen i kodefilene der location manager-objektet skal opprettes og initialiseres. Vanligvis er det bare en forekomst av lokasjonsbehandlerobjektet. Av denne grunn er det vanlig at utviklere oppretter posisjonsbehandlerobjektet i implementeringsfilen for App Delegate. Appdelegert overskriftsfil (.h) skal ligne kode A.

Kode A

 #importere 
 #importere 
 @interface AppDelegate: UIResponder 
 @ eiendom (sterkt, ikke-atomisk) UIWindow * -vindu; 
 @ eiendom (sterk, ikke-atomisk) CLLocationManager * locationManager; 
 @slutt 
App Delegate-implementeringsfilen (.m) er der stedbehandlingsobjektet opprettes. Vi syntetiserer egenskapen, og oppretter / initialiserer deretter objektet vårt innen metodeprogrammet didFinishLaunchingWithOptions som vist i kode B. Hvis lokasjonstjenester er tilgjengelige, initialiserer vi objektet.

Kode B

 #import "AppDelegate.h" 
 @ implementering AppDelegate 
 @synthesize locationManager = _locationManager; 
 - (BOOL) applikasjon: (UIApplication *) søknad didFinishLaunchingWithOptions: (NSDictionary *) launchOptions 
 { 
 if (self.locationManager == null) { 
 _locationManager = CLLocationManager alloc init; 
 _locationManager.distanceFilter = kCLDistanceFilterNone; 
 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
 _locationManager.delegate = self; 
 self.locationManager = _locationManager; 
 } 
 if (CLLocationManager locationServicesEnabled) { 
 self.locationManager startUpdatingLocation; 
 } 
 return YES; 
 } 
 @slutt 
Med Core Location- rammen koblet, og location manager-objektet initialisert, kompilerer du appen som skal kjøres i iPhone Simulator. Som du kan se, blir brukeren bedt om å tillate lokasjonstjenester for denne spesielle appen (figur E) .

Figur E

Posisjonsbaserte tjenester brukes til å hente den nåværende plasseringen av en mobil enhet for sosiale medier og markedsføringsapplikasjoner. Stedsbaserte tjenester på iOS 6 tilbyr muligheten til å overvåke formbaserte regioner og gi tilbakemeldinger i sanntid for å utløse varsler når en enhet krysser grenser. Forhandlere bruker geo-fektingstrategier i appene sine for å gyte en varsling til en bruker når vedkommende er i nærheten av et forhåndsdefinert sted - for eksempel en kaffebar.

Påminnelser-appen i iOS 6 bruker regionovervåking for å støtte stedsbaserte påminnelser. Denne muligheten er tilgjengelig for bruk i alle iOS 6-apper. Programmeringsveiledning for stedsbevissthet er en flott ressurs for detaljert informasjon angående standard lokasjonstjeneste, betydelig endring av lokasjonstjeneste og forbedrede regionovervåkingsfunksjoner. Apple har destillert en veldig kompleks teknologi for stedsavledende teknologi inn i et rammeverk som definitivt vil inspirere mange flotte nye apper.

Les også:

  • iOS utviklerprogram applikasjonshodepine og tips
  • Stedsdata: Hvordan bedrifter kan unngå å miste veien over å spore brukere
  • SMB-er kan bruke Foursquare for å finne og beholde kunder

© Copyright 2020 | mobilegn.com