GPS och platsbaserade tjänster i mobilappar — vad är det, metoder för att få koordinater

Författare: IT Sectr Publicerad: 2026-03-22 Lästid: 8 min

GPS och platsbaserade tjänster i mobilappar — är API:er för att bestämma en enhets fysiska plats med hjälp av satelliter, Wi-Fi och mobila nätverk. Enligt Google Android Location Guide (2025) använder över 60% av mobilapparna platsdata för att personalisera innehåll. Fused Location Provider på Android kombinerar flera källor för att öka noggrannheten och minska energiförbrukningen.

Huvudpunkter

  • GPS — ett globalt satellitnavigeringssystem som ger noggrannhet upp till 3-5 meter på öppet fält.
  • Platsbaserade tjänster på Android och iOS tillhandahåller API:er för att få koordinater via GPS, Wi-Fi och mobilmaster.
  • FusedLocationProviderClient på Android kombinerar GPS, Wi-Fi och sensorer för optimal balans mellan noggrannhet och energiförbrukning.
  • CLLocationManager på iOS hanterar geolokaliseringsförfrågningar med noggrannhetsinställning och bakgrundsläge.
  • Tillstånd för geolokalisering delas upp i ”vid användning” och “alltid” — det andra kräver ytterligare motivering.

Vad är GPS och platsbaserade tjänster

GPS (Global Positioning System) — är ett satellitnavigeringssystem som består av 31 aktiva satelliter i omloppsbana på cirka 20 200 km höjd. På mobila enheter tar GPS-chippet emot signaler från satelliter och beräknar koordinater baserat på trilaterering — mätning av signalens utbredningstid från flera satelliter. Platsbaserade tjänster i mobila operativsystem lägger till data från Wi-Fi-åtkomstpunkter och mobilmaster till GPS för att snabba upp koordinatbestämningen (A-GPS) och förbättra noggrannheten inomhus. Enligt GPS.gov (2024) är noggrannheten för civil GPS 3-5 meter under klar himmel och upp till 15 meter i tät bebyggelse.

Ytterligare satellitsystem

Moderna mobila enheter stöder inte bara det amerikanska GPS-systemet utan även andra globala navigationssystem: ryska GLONASS (24 satelliter), europeiska Galileo (28 satelliter) och kinesiska BeiDou. Samtidigt stöd för flera system ökar noggrannheten och hastigheten för koordinatbestämning — enheten kan använda upp till 40 satelliter från olika system för att beräkna positionen. På iOS och Android sker valet av satellitsystem automatiskt på hårdvaruchipsnivå, utvecklaren behöver inte hantera detta.

Hur platsbestämning fungerar

Processen för platsbestämning på en mobil enhet består av flera steg: insamling av data från källor (satelliter, Wi-Fi, mobila nätverk), filtrering och korrigering av fel, beräkning av koordinater och överföring av resultatet till appen. Operativsystemet hanterar denna process genom en enhetlig geolokaliserings tjänst som optimerar alla källors arbete för att spara batteri. Nedan beskrivs de tre huvudsakliga källorna till platsdata.

GPS och satellitnavigering

Satellitnavigering ger maximal noggrannhet (3-5 meter), men kräver direkt sikt mot himlen. Inomhus eller i tät stadsbebyggelse kan GPS-signalen försvagas eller helt förloras. Tiden för första positionsbestämning (TTFF) är 30-60 sekunder vid kallstart och 5-10 sekunder vid varmstart. A-GPS (Assisted GPS) snabbar upp starten genom att ladda ner satellitefemerider via internet istället för att vänta på data från satelliterna.

Platsbestämning via Wi-Fi och mobilmaster

Wi-Fi positionering använder en databas med MAC-adresser för åtkomstpunkter med kända koordinater. Noggrannheten är 10-50 meter inom Wi-Fi-räckvidd. Mobilmaster ger noggrannhet från 100 meter upp till flera kilometer beroende på masternas täthet. Kombinationen av alla källor (Fused Location) gör det möjligt att få koordinater med rimlig noggrannhet vid minimal energiförbrukning — särskilt när GPS-chippet är avstängt eller satellitesignalen inte är tillgänglig.

Geolokaliseringsleverantörer på Android och iOS

På båda plattformarna är platsbaserade tjänster implementerade via system-API:er med olika abstraktionsnivåer. Android använder FusedLocationProviderClient från Google Play Services, iOS använder CLLocationManager från Core Location. Båda API:erna gör det möjligt att begära en engångsposition eller prenumerera på regelbundna uppdateringar. Nedan är ett exempel på att få koordinater på Android med Fused Location Provider i Kotlin.

Få koordinater på Android

kotlin
val fusedClient = LocationServices.getFusedLocationProviderClient(this)

val locationRequest = LocationRequest.Builder(
    Priority.PRIORITY_HIGH_ACCURACY
)
.setIntervalMillis(5000)
.setMinUpdateIntervalMillis(2000)
.build()

val locationCallback = object : LocationCallback() {
    override fun onLocationResult(result: LocationResult) {
        result.lastLocation?.let { location ->
            Log.d("Plats", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

if (checkLocationPermission()) {
    fusedClient.requestLocationUpdates(
        locationRequest, locationCallback,
        Looper.getMainLooper()
    )
}

I exemplet konfigureras LocationRequest med prioriteten HIGH_ACCURACY — detta aktiverar GPS för maximal noggrannhet. setIntervalMillis ställer in önskat uppdateringsintervall (5 sekunder), setMinUpdateIntervalMillis — minimum (2 sekunder). Callback-funktionen onLocationResult anropas varje gång systemet får nya koordinater. Det är viktigt att kontrollera tillståndet innan requestLocationUpdates anropas — annars kraschar appen med SecurityException.

Få koordinater på iOS

swift
import CoreLocation

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

// MARK: - CLLocationManagerDelegate
func locationManager(
    _ manager: CLLocationManager,
    didUpdateLocations locations: [CLLocation]
) {
    guard let location = locations.last else { return }
    print("Location: \(location.coordinate.latitude), \(location.coordinate.longitude)")
}

På iOS bestämmer desiredAccuracy noggrannheten för begäran: kCLLocationAccuracyBest använder alla tillgängliga källor (GPS + Wi-Fi + mobila nätverk). Efter att ha begärt tillstånd via requestWhenUseAuthorization visar systemet en dialogruta för användaren. Delegaten didUpdateLocations tar emot en array med CLLocation-objekt med koordinater, höjd, hastighet och riktning. För att stoppa uppdateringar anropas stopUpdatingLocation för att spara batteri.

Begära tillstånd för geolokalisering

Tillgång till geolokalisering kräver uttryckligt tillstånd från användaren på båda plattformarna. På Android används tillstånden ACCESS_FINE_LOCATION (GPS) och ACCESS_COARSE_LOCATION (Wi-Fi/mobila nätverk). Från och med Android 10 krävs separat tillstånd ACCESS_BACKGROUND_LOCATION för bakgrundsåtkomst. På iOS finns tre nivåer: requestWhenInUseAuthorization (endast när appen är aktiv), requestAlwaysAuthorization (i bakgrunden) och tidsstämplar för exakt positionering. Apple kräver obligatorisk beskrivning i Info.plist: NSLocationWhenInUseUsageDescription eller NSLocationAlwaysAndWhenInUseUsageDescription. Utan dessa nycklar ignoreras tillståndsbegäran.

Optimera energiförbrukningen

Kontinuerlig användning av GPS minskar batteritiden avsevärt — upp till 30% per timme kontinuerlig drift vid maximal noggrannhet. För att optimera energiförbrukningen rekommenderas att använda geolokalisering endast när det behövs och stoppa uppdateringar när appen går i bakgrunden. På Android växlar FusedLocationProviderClient automatiskt mellan GPS och nätverkskällor beroende på tillgänglighet och begärans prioritet. På iOS använder du significant-change location service (startMonitoringSignificantLocationChanges) för uppdateringar med minimal energiförbrukning — noggrannheten är lägre (upp till 500 meter), men batteriet förbrukas nästan inte. Tillämpa också batchbearbetning: samla koordinater med 5-10 minuters intervall och skicka till servern med en enda begäran via WorkManager på Android eller BGTaskScheduler på iOS. Att minska begäranfrekvensen från 1 sekund till 30 sekunder minskar energiförbrukningen för geolokalisering med 85%.

Användningsscenario för geolokalisering

Geolokalisering används i ett brett spektrum av mobilappar: från navigatorer till leveranstjänster. De vanligaste scenarierna inkluderar att visa användaren på kartan, geografisk målinriktning av annonser, spårning av bud, geofencing för push-notiser och spårning av fitnessaktivitet. Varje scenario kräver sin egen strategi för noggrannhet och uppdateringsfrekvens. Nedan finns en tabell med konfigurationsrekommendationer för olika apptyper.

ApptypNoggrannhetIntervallBakgrundsläge
NavigatorHIGH (GPS)1-2 sekJa
LeveransBALANCED (GPS+Wi-Fi)10-30 sekJa
VäderLOW (Wi-Fi/mobila nätverk)EngångsNej
Socialt nätverkBALANCEDVid öppningNej
FitnessHIGH (GPS)5-10 sekJa

Vid design av geolokaliseringsfunktionalitet är det viktigt att beakta att användare när som helst kan återkalla tillståndet via systeminställningarna. Appen bör korrekt hantera situationen när geolokalisering inte är tillgänglig och visa en tydlig förklaring om varför funktionaliteten är begränsad.

Geofencing

Geofencing — teknik för att skapa virtuella gränser på kartan, vid passage av vilka appen får ett meddelande. På Android implementeras geofences via GeofencingClient från Google Play Services, på iOS — via CLCircularRegion från Core Location. Vid inträde eller utträde ur en zon väcker systemet appen och skickar en händelse även om appen är stängd eller minimerad. Detta används för push-notiser vid närmande av en butik, platsbaserade påminnelser om uppgifter och automatisering av IoT-enheter. Maximalt antal geofences är begränsat: på Android — 100, på iOS — 20 samtidigt. Minsta radie för en zon är 50 meter på båda plattformarna, annars kan systemet misslyckas på grund av positionsbestämningsfel. Vid inträde i en zon startar systemet ett Intent på Android eller anropar delegaten locationManager:didEnterRegion på iOS.

Vanliga frågor

Vad är GPS i mobila enheter?

GPS i en smartphone är en inbyggd mottagare av signaler från satellitnavigeringssystemet som bestämmer koordinater med en noggrannhet på 3-5 meter. På enheter finns även GLONASS, Galileo och BeiDou för att öka noggrannheten och positioneringshastigheten.

Vad skiljer GPS från platsbaserade tjänster?

GPS är endast satellitmetoden för att bestämma koordinater. Platsbaserade tjänster kombinerar GPS, Wi-Fi-positionering och data från mobilmaster för snabbare och mer energieffektiv platsbestämning, särskilt inomhus.

Hur begär jag tillstånd för geolokalisering på iOS?

Anropa requestWhenInUseAuthorization() eller requestAlwaysAuthorization() på en instans av CLLocationManager. Lägg i förväg till NSLocationWhenInUseUsageDescription i Info.plist med en tydlig text om orsaken till att använda geolokalisering.

Hur minskar jag GPS:ens energiförbrukning i appen?

Använd FusedLocationProviderClient på Android och significant-change location service på iOS. Öka intervallet mellan förfrågningar till 10-30 sekunder, stäng av uppdateringar när skärmen är av och tillämpa batch-sändning av koordinater till servern.

Kan jag få geolokalisering utan GPS?

Ja, utan GPS kan ungefärlig plats bestämmas via Wi-Fi-åtkomstpunkter (noggrannhet 10-50 meter) eller mobilmaster (noggrannhet 100-5000 meter). På Android används ACCESS_COARSE_LOCATION för detta.

Sammanfattning

  • GPS — satellitnavigeringssystem med 3-5 meters noggrannhet, kompletterat med GLONASS, Galileo och BeiDou.
  • Platsbaserade tjänster kombinerar GPS, Wi-Fi och mobilmaster för snabb och noggrann koordinatbestämning.
  • Android använder FusedLocationProviderClient med LocationRequest för att konfigurera noggrannhet och uppdateringsintervall.
  • iOS använder CLLocationManager med desiredAccuracy och delegaten didUpdateLocations för att få koordinater.
  • Tillstånd delas upp i ”vid användning” och “alltid”, bakgrundsåtkomst kräver separat godkännande från användaren.
  • Energiförbrukning för GPS kan minskas med 85% genom att öka intervallet och använda betydande platsförändringar.
  • Rekommendation — välj noggrannhet och uppdateringsintervall beroende på scenario: navigator kräver HIGH, väder — LOW.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också