Afmystificering af iOS-placeringsbaserede tjenester for at forbedre nøjagtigheden

Fra den ydmyge begyndelse af den mobile enheds æra har telekommunikationsudbydere og applikationsudviklere haft muligheden for at geo-lokalisere en enhed. Tidlige ikke-så-smarte enheder brugte triangulering - mere specifikt trilateration - til at identificere en brugers placering. Efterhånden som hardware og understøttende teknologier udviklede sig, blev satellitbaserede navigationsfunktioner tilføjet til mobile enheder. Derudover inkluderer hver nuværende Apple mobil enhed et accelerometer til måling af hastighed og et magnetometer til bestemmelse af en enheds position.

Apples iOS 6 introducerede udviklere til en meget forbedret Core Location-ramme (PDF). Den nye ramme drager fuld fordel af den nuværende hardware til at levere en robust pakke med lokationsbaserede tjenester. Selvom trilateration eller global positionering alene giver rimelig nøjagtighed, bruger Apple adskillige teknikker til at tilvejebringe nøjagtige placeringskoordinater for enheden. For fuldt ud at forstå kompleksiteten af ​​iOS-lokationsbaserede tjenester, er vi nødt til at forstå videnskaben og matematikken bag trilateration, assisteret global positionering og Apples brug af crowd-sourced Wi-Fi.

trilateration

Triangulering og trilateration er to matematiske processer til bestemmelse af placeringen af ​​et punkt. Triangulering bruger en proces til måling af vinkler fra kendte steder - såsom celletårne ​​- til at beregne den aktuelle position. Trilateration bestemmer placeringen af ​​en enhed ved at beregne krydset mellem cirkler eller kugler, der repræsenterer en enheds afstand fra kendte steder. Nøjagtigheden af ​​disse fremgangsmåder forbedres, når der anvendes mere faste placeringer i beregningerne.

Signalstyrke bruges til at forudsige en enheds afstand fra forskellige celtårne. Når celletårnets faste placering er kendt, etableres en afstandsradius. Uden krydsning af cirkler fra en anden eller tredje celletårnposition kan vi kun bestemme, at enheden er placeret et sted på omkredsen af ​​afstandskredsen (figur A) . En Omni-retningsantenne på celletårnet kan indsnævre placeringen af ​​en mobilenhed, men ikke tæt nok til at opfylde kravene i dagens iOS-apps.

Figur A

Når mobiltelefonaktiverede mobile enheder bevæger sig rundt, er det almindeligt - især i tætbefolkede områder - at enheden kommunikerer samtidigt med flere celtårne. Hvis to celletårne ​​er i kommunikation med enheden, kan vi udlede to mulige placeringer fra de to skæringspunkter (figur B) . Det bedste tilfælde er imidlertid at udnytte informationen fra mindst tre celletårne ​​for at identificere et sted, der er repræsenteret ved det ene skæringspunkt mellem tre cirkler eller kugler (figur C) .

Figur B

Fig

Globalt navigationssystem

Globale navigationssystemer, ligesom GPS, giver mulighed for at finde en enhed ved at bruge kendte koordinater af satellitter i modsætning til celletårne. Trilateration bruges til at finde krydsningspunktet mellem kugler for at bestemme placeringen af ​​en GPS-aktiveret mobilenhed. GPS-hardware er energikrævende og kan hurtigt tømme batteriet på en mobilenhed. Apple bruger den mere effektive AGPS-proces (Assisted Global Positioning) til lokalisering og forbindelse til satellitter. Med AGPS hentes satellitpositionering fra en mobil- eller Wi-Fi-forbindelse, hvilket reducerer den tid, det tager at opdage en satellit.

Crowd-Sourcing

Apple udnytter crowd-sourced information til (1) finjusterer nøjagtigheden af ​​lokalitetsbaserede tjenester på enheder, der er aktiveret af mobiltelefoner og GPS, og (2) aktiverer positionsbaserede tjenester på enheder, der ikke er mobiltelefoner eller kun Wi-Fi.

Wi-Fi fra folkemængder er langt den mest innovative tilgang til at bestemme placeringen af ​​en mobilenhed. Apple bruger en database med Wi-Fi-hotspots og placeringer i celtårnet - indsendt anonymt af et hvilket som helst antal iOS-mobile enheder - for at hjælpe med at bestemme koordinaterne for en enkelt mobilenhed. Cellular-, AGPS- og crowd-sourced Wi-Fi-oplysninger bruges til at tilføje nøjagtige data til iOS-placeringsbaserede tjenester. Apples iOS Core Location-ramme gør det muligt at udføre komplekse opgaver med kun et par kodelinjer.

Brug af lokalitetsbaserede tjenester

IOS-placeringsbaserede tjenester leverer enkle metoder til at bestemme en enheds aktuelle placering. Det første trin i brugen af ​​lokationsbaserede tjenester er at tilføje Core Location Framework til dit iOS-projekt. Med de tilknyttede rammer kan du få adgang til standardplaceringstjenesten, service med væsentlig ændring og regionens overvågningskapacitet i din app.

Følg disse trin for at tilføje Core Location Framework (figur D) :

Figur D

Vælg appen "target" i venstre navigation i dit projektvindue.

Vælg fanen "Resume" og rulle ned til afsnittet Koblede rammer og biblioteker.

Klik på knappen "+", vælg CoreLocation, og klik på "Tilføj".

Med Core Location Framework, der er knyttet til dit projekt, skal du tilføje en #import-reference til overskriftsfilen i kodefilerne, hvor positionsstyringsobjektet oprettes og initialiseres. Der er typisk kun én forekomst af lokationsstyringsobjektet. Af denne grund er det almindeligt for udviklere at oprette lokationsstyringsobjektet i implementeringsfilen til App Delegate. Appdelegatoverskriftsfilen (.h) skal ligne kode A.

Kode A

 #importere 
 #importere 
 @interface AppDelegate: UIResponder 
 @ ejendom (stærkt, ikke-atomisk) UIWindow * -vindue; 
 @ ejendom (stærk, ikke-atomisk) CLLocationManager * locationManager; 
 @ende 
Appdelegationsimplementeringsfilen (.m) er det sted, hvor placeringsstyringsobjektet oprettes. Vi syntetiserer egenskaben og opretter / initialiserer derefter vores objekt inden for metodeprogrammet didFinishLaunchingWithOptions som vist i kode B. Hvis der er tilgængelige lokationstjenester, initialiserer vi objektet.

Kode B

 #import "AppDelegate.h" 
 @ implementering AppDelegate 
 @synthesize locationManager = _locationManager; 
 - (BOOL) ansøgning: (UIApplication *) ansøgning didFinishLaunchingWithOptions: (NSDictionary *) startOptions 
 { 
 if (self.locationManager == nul) { 
 _locationManager = CLLocationManager alloc init; 
 _locationManager.distanceFilter = kCLDistanceFilterNone; 
 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
 _locationManager.delegate = self; 
 self.locationManager = _locationManager; 
 } 
 if (CLLocationManager locationServicesEnabled) { 
 self.locationManager startUpdatingLocation; 
 } 
 vende tilbage JA; 
 } 
 @ende 
Med den tilknyttede Core Location- ramme og placeringsstyringsobjektet initialiseret, kompilerer appen til at køre i iPhone Simulator. Som du kan se, bliver brugeren bedt om at tillade placeringstjenester til denne bestemte app (figur E) .

Figur E

Placeringsbaserede tjenester bruges til at hente den aktuelle placering af en mobilenhed til sociale medier og marketingapplikationer. Placeringsbaserede tjenester på iOS 6 giver mulighed for at overvåge formbaserede regioner og give feedback i realtid til at udløse meddelelser, når en enhed krydser grænser. Forhandlere bruger geo-hegnstrategier i deres apps for at spa en anmeldelse til en bruger, når han eller hun er i nærheden af ​​et foruddefineret sted - f.eks. En café.

Appen Påmindelser i iOS 6 bruger overvågning af regionen til at understøtte placeringsbaserede påmindelser. Denne funktion er tilgængelig til brug i enhver iOS 6-app. Programmeringsvejledning til lokal bevidsthed er en stor ressource til detaljerede oplysninger om standardplaceringstjenesten, placeringstjeneste med væsentlig ændring og forbedrede kapaciteter til overvågning af regioner . Apple har destilleret en meget kompleks teknologi, der stammer fra lokationen, til en ramme, der helt sikkert vil inspirere til mange gode nye apps.

Læs også:

  • iOS-udviklingsprogram applikationshovedpine og tip
  • Placeringsdata: Hvordan virksomheder kan undgå at miste deres vej over sporing af brugere
  • SMB'er kan bruge Foursquare til at finde og fastholde kunder

© Copyright 2021 | pepebotifarra.com