GPS és helymeghatározó szolgáltatások mobilalkalmazásokban — mi ez, koordináták megszerzésének módszerei

Szerző: IT Sectr Megjelenés: 2026-03-22 Olvasási idő: 8 perc

GPS és helymeghatározó szolgáltatások mobilalkalmazásokban — API-k az eszköz fizikai helyének meghatározásához műholdak, Wi-Fi és mobilhálózatok segítségével. A Google Android Location Guide (2025) szerint a mobilalkalmazások több mint 60%-a használ helyadatokat a tartalom személyre szabásához. A Fused Location Provider Androidon több forrást egyesít a pontosság növelése és az energiafogyasztás csökkentése érdekében.

Főbb pontok

  • GPS — globális műholdas navigációs rendszer, amely szabad területen akár 3-5 méteres pontosságot biztosít.
  • Helymeghatározó szolgáltatások Androidon és iOS-en API-kat biztosítanak a koordináták megszerzéséhez GPS, Wi-Fi és mobiltelefon-tornyok segítségével.
  • FusedLocationProviderClient Androidon egyesíti a GPS-t, Wi-Fi-t és érzékelőket a pontosság és energiafogyasztás optimális egyensúlyáért.
  • CLLocationManager iOS-en kezeli a helymeghatározási kéréseket pontosságbeállítással és háttérmóddal.
  • Engedélyek a helymeghatározáshoz „használat közben” és „mindig” kategóriákra oszlanak — az utóbbi további indoklást igényel.

Mi a GPS és a helymeghatározó szolgáltatások

GPS (Global Positioning System) — egy műholdas navigációs rendszer, amely 31 aktív műholdból áll, körülbelül 20 200 km magas pályán. Mobil eszközökön a GPS-chip jeleket fogad a műholdaktól, és a trilateráció — a jel több műholdtól számított terjedési idejének mérése — alapján számítja ki a koordinátákat. A mobil operációs rendszerek helymeghatározó szolgáltatásai a GPS-hez hozzáadják a Wi-Fi hozzáférési pontok és mobiltelefon-tornyok adatait a koordináták meghatározásának gyorsítása (A-GPS) és a beltéri pontosság javítása érdekében. A GPS.gov (2024) adatai szerint a polgári GPS pontossága tiszta égbolt mellett 3-5 méter, sűrű beépítettség esetén akár 15 méter.

További műholdrendszerek

A modern mobil eszközök nemcsak az amerikai GPS rendszert, hanem más globális navigációs rendszereket is támogatnak: az orosz GLONASS-t (24 műhold), az európai Galileo-t (28 műhold) és a kínai BeiDou-t. Több rendszer egyidejű támogatása növeli a koordináták meghatározásának pontosságát és sebességét — az eszköz akár 40 műholdat is használhat különböző rendszerekből a pozíció kiszámításához. iOS-en és Androidon a műholdrendszer kiválasztása automatikusan, hardverchip szinten történik, a fejlesztőnek nem kell ezt kezelnie.

Hogyan működik a helymeghatározás

A helymeghatározás folyamata egy mobileszközön több szakaszból áll: adatgyűjtés a forrásokból (műholdak, Wi-Fi, mobilhálózatok), hibák szűrése és korrekciója, koordináták kiszámítása és az eredmény továbbítása az alkalmazásnak. Az operációs rendszer ezt a folyamatot egy egységes helymeghatározó szolgáltatáson keresztül kezeli, amely optimalizálja az összes forrás munkáját az akkumulátor kímélése érdekében. Az alábbiakban a helyadatok három fő forrása kerül bemutatásra.

GPS és műholdas navigáció

Műholdas navigáció maximális pontosságot (3-5 méter) biztosít, de közvetlen égbolt látványt igényel. Beltérben vagy sűrű városi környezetben a GPS jel gyengülhet vagy teljesen elveszhet. Az első pozíció meghatározásának ideje (TTFF) hidegindításkor 30-60 másodperc, melegindításkor 5-10 másodperc. Az A-GPS (Assisted GPS) felgyorsítja az indulást a műholdak efemerisz adatainak interneten keresztüli letöltésével, ahelyett hogy a műholdaktól várná az adatokat.

Helymeghatározás Wi-Fi-n és mobiltelefon-tornyokon keresztül

Wi-Fi pozicionálás az ismert koordinátákkal rendelkező hozzáférési pontok MAC-címeinek adatbázisát használja. A pontosság Wi-Fi hatókörben 10-50 méter. A mobiltelefon-tornyok a tornyok sűrűségétől függően 100 métertől több kilométerig terjedő pontosságot adnak. Az összes forrás kombinációja (Fused Location) lehetővé teszi a koordináták ésszerű pontosságú megszerzését minimális energiafogyasztás mellett — különösen amikor a GPS-chip ki van kapcsolva vagy a műholdjel nem elérhető.

Helymeghatározás szolgáltatói Androidon és iOS-en

Mindkét platformon a helymeghatározó szolgáltatások rendszer API-kon keresztül vannak megvalósítva, különböző absztrakciós szintekkel. Az Android a Google Play Services FusedLocationProviderClient-jét, az iOS a Core Location CLLocationManager-jét használja. Mindkét API lehetővé teszi egyszeri pozíció kérését vagy rendszeres frissítésekre való feliratkozást. Az alábbiakban egy példa látható a koordináták lekérésére Androidon a Fused Location Provider segítségével Kotlinban.

Koordináták lekérése Androidon

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("Hely", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

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

A példában a LocationRequest HIGH_ACCURACY prioritással van konfigurálva — ez bekapcsolja a GPS-t a maximális pontosság érdekében. A setIntervalMillis beállítja a kívánt frissítési intervallumot (5 másodperc), a setMinUpdateIntervalMillis a minimális intervallumot (2 másodperc). Az onLocationResult callback minden alkalommal meghívásra kerül, amikor a rendszer új koordinátákat kap. Fontos ellenőrizni az engedélyt a requestLocationUpdates meghívása előtt — különben az alkalmazás SecurityException kivétellel összeomlik.

Koordináták lekérése iOS-en

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)")
}

iOS-en a desiredAccuracy határozza meg a kérés pontosságát: a kCLLocationAccuracyBest az összes elérhető forrást használja (GPS + Wi-Fi + mobilhálózatok). A requestWhenUseAuthorization-on keresztüli engedélykérés után a rendszer párbeszédablakot jelenít meg a felhasználónak. A didUpdateLocations delegate koordinátákat, magasságot, sebességet és irányt tartalmazó CLLocation objektumok tömbjét kapja. A frissítések leállításához a stopUpdatingLocation hívódik meg az akkumulátor kímélése érdekében.

Helymeghatározási engedélyek kérése

A helymeghatározáshoz való hozzáférés mindkét platformon kifejezett felhasználói engedélyt igényel. Androidon az ACCESS_FINE_LOCATION (GPS) és ACCESS_COARSE_LOCATION (Wi-Fi/mobilhálózatok) engedélyek használatosak. Android 10-től kezdve a háttérbeli hozzáféréshez külön ACCESS_BACKGROUND_LOCATION engedély szükséges. iOS-en három szint érhető el: requestWhenInUseAuthorization (csak aktív alkalmazás esetén), requestAlwaysAuthorization (háttérben) és időbélyegek a pontos pozicionáláshoz. Az Apple kötelező leírást ír elő az Info.plist-ben: NSLocationWhenInUseUsageDescription vagy NSLocationAlwaysAndWhenInUseUsageDescription. E kulcsok nélkül az engedélykérés figyelmen kívül marad.

Energiafogyasztás optimalizálása

A GPS folyamatos használata jelentősen csökkenti az akkumulátor élettartamát — akár 30%-kal egy óra folyamatos, maximális pontosságú működés alatt. Az energiafogyasztás optimalizálásához ajánlott csak szükség esetén használni a helymeghatározást, és leállítani a frissítéseket, amikor az alkalmazás háttérbe kerül. Androidon a FusedLocationProviderClient automatikusan vált a GPS és a hálózati források között az elérhetőségtől és a kérés prioritásától függően. iOS-en használja a jelentős helyváltozás figyelő szolgáltatást (startMonitoringSignificantLocationChanges) a minimális energiafogyasztású frissítésekhez — a pontosság alacsonyabb (akár 500 méter), de az akkumulátor szinte nem merül. Gyakorolja továbbá a kötegelt feldolgozást: gyűjtse a koordinátákat 5-10 perces intervallumokban, és küldje el a szervernek egyetlen kéréssel a WorkManager segítségével Androidon vagy a BGTaskScheduler segítségével iOS-en. A kérések gyakoriságának 1 másodpercről 30 másodpercre csökkentése 85%-kal mérsékli a helymeghatározás energiafogyasztását.

Helymeghatározás használati forgatókönyvei

Helymeghatározást a mobilalkalmazások széles körében használják: a navigátoroktól a kézbesítési szolgáltatásokig. A leggyakoribb forgatókönyvek közé tartozik a felhasználó térképen való megjelenítése, a hirdetések célzása, a futárok nyomon követése, a geokerítések push értesítésekhez és a fitnesztevékenységek követése. Minden forgatókönyv saját megközelítést igényel a pontosság és a frissítés gyakorisága tekintetében. Az alábbi táblázat konfigurációs ajánlásokat tartalmaz különböző alkalmazástípusokhoz.

Alkalmazás típusaPontosságIntervallumHáttérmód
NavigátorHIGH (GPS)1-2 mpIgen
KézbesítésBALANCED (GPS+Wi-Fi)10-30 mpIgen
IdőjárásLOW (Wi-Fi/mobilhálózatok)EgyszeriNem
Közösségi médiaBALANCEDMegnyitáskorNem
FitneszHIGH (GPS)5-10 mpIgen

A helymeghatározási funkció tervezésekor fontos figyelembe venni, hogy a felhasználók bármikor visszavonhatják az engedélyt a rendszerbeállításokon keresztül. Az alkalmazásnak megfelelően kell kezelnie azt a helyzetet, amikor a helymeghatározás nem elérhető, és érthető magyarázatot kell adnia arról, hogy a funkció miért korlátozott.

Geokerítés (Geofencing)

Geofencing — egy technológia virtuális határok létrehozására a térképen, amelyek átlépésekor az alkalmazás értesítést kap. Androidon a geokerítések a Google Play Services GeofencingClient-jén keresztül, iOS-en a Core Location CLCircularRegion-jén keresztül valósulnak meg. Egy zónába való belépéskor vagy onnan való kilépéskor a rendszer felébreszti az alkalmazást és eseményt küld, még akkor is, ha az alkalmazás zárva vagy minimalizálva van. Ezt push értesítésekhez használják üzlet megközelítésekor, helyalapú feladat-emlékeztetőkhöz és IoT-eszközök automatizálásához. A geokerítések maximális száma korlátozott: Androidon — 100, iOS-en — 20 egyidejűleg. A zóna minimális sugara 50 méter mindkét platformon, ellenkező esetben a rendszer a helymeghatározási hiba miatt nem biztos, hogy működik. Egy zónába való belépéskor a rendszer Intent-et indít Androidon, vagy meghívja a locationManager:didEnterRegion delegáltat iOS-en.

Gyakran ismételt kérdések

Mi a GPS a mobil eszközökben?

A GPS az okostelefonban egy beépített vevője a műholdas navigációs rendszer jeleinek, amely 3-5 méteres pontossággal határozza meg a koordinátákat. Az eszközökön elérhető továbbá a GLONASS, Galileo és BeiDou a pontosság és a pozicionálás sebességének növelése érdekében.

Miben különbözik a GPS a helymeghatározó szolgáltatásoktól?

A GPS csak a koordináták meghatározásának műholdas módszere. A helymeghatározó szolgáltatások egyesítik a GPS-t, a Wi-Fi pozicionálást és a mobiltelefon-tornyok adatait a gyorsabb és energiatakarékosabb helymeghatározás érdekében, különösen beltéren.

Hogyan kérjek helymeghatározási engedélyt iOS-en?

Hívja meg a requestWhenInUseAuthorization() vagy requestAlwaysAuthorization() metódust egy CLLocationManager példányon. Előzőleg adja hozzá az NSLocationWhenInUseUsageDescription kulcsot az Info.plist-hez a helymeghatározás használatának indoklásával.

Hogyan csökkenthető a GPS energiafogyasztása az alkalmazásban?

Használja a FusedLocationProviderClient szolgáltatást Androidon és a jelentős helyváltozás figyelő szolgáltatást iOS-en. Növelje a kérések közötti intervallumot 10-30 másodpercre, kapcsolja ki a frissítéseket, amikor a képernyő ki van kapcsolva, és alkalmazzon kötegelt koordináta-küldést a szerverre.

Lehetséges helymeghatározás GPS nélkül?

Igen, GPS nélkül is meghatározható a hozzávetőleges hely Wi-Fi hozzáférési pontok (10-50 méteres pontosság) vagy mobiltelefon-tornyok (100-5000 méteres pontosság) segítségével. Androidon ehhez az ACCESS_COARSE_LOCATION engedély használatos.

Összefoglalás

  • GPS — műholdas navigációs rendszer 3-5 méteres pontossággal, kiegészítve GLONASS, Galileo és BeiDou rendszerekkel.
  • Helymeghatározó szolgáltatások egyesítik a GPS-t, Wi-Fi-t és mobiltelefon-tornyokat a gyors és pontos koordinátameghatározáshoz.
  • Android a FusedLocationProviderClient és LocationRequest segítségével állítja be a pontosságot és a frissítési intervallumot.
  • iOS a CLLocationManager-t használja desiredAccuracy és didUpdateLocations delegate segítségével a koordináták lekéréséhez.
  • Engedélyek „használat közben” és „mindig” kategóriákra oszlanak, a háttér-hozzáférés külön felhasználói jóváhagyást igényel.
  • GPS energiafogyasztása 85%-kal csökkenthető az intervallum növelésével és a jelentős helyváltozások használatával.
  • Javaslat — válassza a pontosságot és a frissítési intervallumot a forgatókönyv szerint: a navigátor HIGH-ot, az időjárás LOW-ot igényel.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is