/ / iPhone: Ako zobrazím polohu používateľa v zobrazení mapy bez toho, aby som aktualizoval polohu / nechal GPS bežať na pozadí? - iphone, gps, umiestnenie, mkmapview, správa napájania

iPhone: Ako môžem zobraziť polohu používateľa v zobrazení mapy bez aktualizácie polohy / GPS beží na pozadí? - iphone, gps, umiestnenie, mkmapview, power-management

Ako zobrazím polohu používateľa v zobrazení MapView, keď nespúšťam GPS, aby som aktualizoval polohu (vôbec)? vôľa

mapView.userTrackingMode = kCLLocationAccuracyNearestTenMeters;

plní úlohu alebo bude GPS stále horieť batériu na pozadí?

Vďaka :)

odpovede:

5 pre odpoveď č. 1

Pokúsim sa odpovedať na vašu otázku čo najlepšie, ako môžem poskytnúť obmedzené informácie.

GPS má 3 hlavné režimy, ktoré prechádzajú z malého výkonu na vysoký výkon, nízkej presnosti a vysokej presnosti.

  • Sledovanie polohy je vypnuté
  • Aktualizácia polohy na pozadí (používa bunkové veže a wifi)
  • Aktualizácia polohy GPS

E MKMapView Ak nastavíte, bude sa zobrazovať modrá bodka pre polohu používateľa showsUserLocation na YES, MKMapView použije všetky dostupné metódy určovania polohy na nájdenie polohy používateľov čo najpresnejšie a bude ju aktualizovať, zatiaľ čo je nastavená na ÁNO.

Sledovanie v MKMapView, režim, ktorý udržuje polohu používateľa na strede obrazovky, posúva viditeľnú oblasť mapy pri pohybe používateľa a je k dispozícii v systéme iOS5. dostali ste tri MKUserTrackingModez čoho vyberať. Z dokumentov:

MKUserTrackingModeNone: Mapa nesleduje umiestnenie používateľa.

MKUserTrackingModeFollow: Mapa sleduje umiestnenie používateľa.

MKUserTrackingModeFollowWithHeading: Mapa sleduje umiestnenie používateľa a otáča sa, keď sa nadpis zmení.

Takže nastavenie na kCLLocationAccuracyNearestTenMeters nebude fungovať, pretože v tomto kontexte nie je k dispozícii.

Ukáže umiestnenie na mieste spálenie batérie na pozadí? Závisí to od toho, čo máte na mysli na pozadí. Keď používateľ klepne na tlačidlo Domov, MKMapView je nútený prestať systém GPS používať. Kým je aplikácia spustená a MKMapView je nažive a má showsUserLocation vlastnosť nastavená na YES na aktualizáciu polohy bude naďalej používať všetku dostupnú metódu vrátane GPS. Máte na to niekoľko stratégií.

1) predpokladajte, že používateľ musí vidieť svoju polohu aktualizovanú, zatiaľ čo je mapa na obrazovke. V takom prípade majte na pamäti showsUserLocation nastavte na ÁNO, kým sa mapa nepresunie mimo obrazovku alebo kým sa zariadenie nezablokuje, a potom ho nastavte NO

2) Predpokladajme, že používateľ musí vidieť iba statickú značku svojej polohy z určitého časového obdobia, napríklad pri otvorení aplikácie. V tomto prípade musíte urobiť CLLocationManager namietať startUpdatingLocation, filtrujte správy delegáta na požadovanú presnosť a potom vypnite aktualizácie polohy (stopUpdatingLocation). Potom môžete pridať znak MKAnnotation na MKMapView aby sa používateľovi zobrazila jeho poloha.

Ako vidíte, číslo 2 je viac práce, ale veľmienergeticky efektívne. Číslo 1 je jednoduché, ale keď je mapa viditeľná, použije viac batérie. Je na vás, aby ste sa rozhodli, aké správanie používateľ očakáva, a podľa toho implementovali svoju aplikáciu.