GPS və mobil tətbiqlərdə geolokasiya xidmətləri — bu nədir, koordinatların alınması üsulları

Müəllif: IT Sectr Dərc olunub: 2026-03-22 Oxuma vaxtı: 8 dəq

GPS və mobil tətbiqlərdə geolokasiya xidmətləri — peyklər, Wi-Fi və mobil şəbəkələr vasitəsilə cihazın fiziki yerini təyin etmək üçün API-dir. Google Android Location Guide (2025) məlumatlarına görə, mobil tətbiqlərin 60%-dən çoxu məzmunu fərdiləşdirmək üçün yer haqqında məlumatlardan istifadə edir. Android-də Fused Location Provider dəqiqliyi artırmaq və enerji sərfiyyatını azaltmaq üçün bir neçə mənbəni birləşdirir.

Əsas məqamlar

  • GPS — açıq ərazidə 3-5 metrə qədər dəqiqlik təmin edən qlobal peyk naviqasiya sistemi.
  • Geolokasiya xidmətləri Android və iOS-da GPS, Wi-Fi və mobil rabitə stansiyaları vasitəsilə koordinatların alınması üçün API təqdim edir.
  • FusedLocationProviderClient Android-də dəqiqlik və enerji sərfiyyatının optimal balansı üçün GPS, Wi-Fi və sensorları birləşdirir.
  • CLLocationManager iOS-da dəqiqlik tənzimləməsi və fon rejimi ilə geolokasiya sorğularını idarə edir.
  • İcazələr geolokasiya üçün "istifadə zamanı" və "həmişə" bölünür — ikincisi əlavə əsaslandırma tələb edir.

GPS və geolokasiya xidmətləri nədir

GPS (Global Positioning System) — təxminən 20 200 km hündürlükdə orbitdə 31 aktiv peyki olan peyk naviqasiya sistemidir. Mobil cihazlarda GPS çipi peyklərdən siqnalları qəbul edir və trilaterasiya — bir neçə peykdən siqnalın yayılma vaxtının ölçülməsi əsasında koordinatları hesablayır. Mobil ƏS-də geolokasiya xidmətləri GPS-ə Wi-Fi giriş nöqtələri və mobil rabitə stansiyalarından məlumatları əlavə edərək koordinatların təyinini sürətləndirir (A-GPS) və qapalı məkanlarda dəqiqliyi yaxşılaşdırır. GPS.gov (2024) məlumatlarına görə, mülki GPS-in dəqiqliyi açıq havada 3-5 metr, sıx tikili şəraitində isə 15 metrə qədərdir.

Əlavə peyk sistemləri

Müasir mobil cihazlar yalnız Amerika GPS sistemini deyil, həm də digər qlobal naviqasiya sistemlərini dəstəkləyir: Rusiyanın QLONASS (24 peyk), Avropanın Galileo (28 peyk) və Çinin BeiDou. Bir neçə sistemin eyni vaxtda dəstəklənməsi koordinatların dəqiqliyini və sürətini artırır — cihaz mövqeyi hesablamaq üçün müxtəlif sistemlərdən 40-a qədər peyk istifadə edə bilər. iOS və Android-də peyk sisteminin seçimi avtomatik olaraq aparat səviyyəsində həyata keçirilir, tərtibatçı bunu idarə etməməlidir.

Yerin təyini necə işləyir

Mobil cihazda yerin təyini prosesi bir neçə mərhələdən ibarətdir: mənbələrdən məlumatların toplanması (peyklər, Wi-Fi, mobil şəbəkələr), səhvlərin filtrasiyası və korreksiyası, koordinatların hesablanması və nəticənin tətbiqə ötürülməsi. Əməliyyat sistemi bu prosesi vahid geolokasiya xidməti vasitəsilə idarə edir ki, bu da batareyanın qənaəti üçün bütün mənbələrin işini optimallaşdırır. Aşağıda yer haqqında məlumatın üç əsas mənbəyi təsvir edilmişdir.

GPS və peyk naviqasiyası

Peyk naviqasiyası maksimum dəqiqlik (3-5 metr) təmin edir, lakin birbaşa səma görünüşü tələb edir. Qapalı məkanda və ya sıx şəhər tikilisində GPS siqnalı zəifləyə və ya tamamilə itə bilər. İlk mövqe təyini vaxtı (TTFF) soyuq başlanğıcda 30-60 saniyə, isti başlanğıcda isə 5-10 saniyə təşkil edir. A-GPS (Assisted GPS) peyklərdən məlumat gözləmək əvəzinə internet vasitəsilə peyk efemeridlərinin yüklənməsi hesabına başlanğıcı sürətləndirir.

Wi-Fi və mobil rabitə stansiyaları ilə yerin təyini

Wi-Fi mövqeləşdirməsi məlum koordinatları olan giriş nöqtələrinin MAC ünvanları verilənlər bazasından istifadə edir. Dəqiqlik Wi-Fi əhatə dairəsində 10-50 metr təşkil edir. Mobil rabitə stansiyaları stansiyaların sıxlığından asılı olaraq 100 metrdən bir neçə kilometrə qədər dəqiqlik verir. Bütün mənbələrin kombinasiyası (Fused Location) minimal enerji sərfiyyatı ilə məqbul dəqiqlikdə koordinatlar əldə etməyə imkan verir — xüsusən GPS çipi söndürüldükdə və ya peyk siqnalı mövcud olmadıqda.

Android və iOS-da geolokasiya provayderləri

Hər iki platformada geolokasiya xidmətləri müxtəlif abstraksiya dərəcəsi ilə sistem API-ləri vasitəsilə həyata keçirilir. Android Google Play Services-dən FusedLocationProviderClient, iOS isə Core Location-dan CLLocationManager istifadə edir. Hər iki API birdəfəlik mövqe sorğulamağa və ya müntəzəm yeniləmələrə abunə olmağa imkan verir. Aşağıda Kotlin dilində Fused Location Provider istifadə edərək Android-də koordinatların alınması nümunəsi verilmişdir.

Android-də koordinatların alınması

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

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

Nümunədə LocationRequest HIGH_ACCURACY prioriteti ilə konfiqurasiya edilir — bu maksimum dəqiqlik üçün GPS-i aktivləşdirir. setIntervalMillis istənilən yeniləmə intervalını (5 saniyə), setMinUpdateIntervalMillis isə minimal intervalı (2 saniyə) təyin edir. onLocationResult callback-i sistem hər dəfə yeni koordinatlar aldıqda çağırılır. requestLocationUpdates çağırmazdan əvvəl icazəni yoxlamaq vacibdir — əks halda tətbiq SecurityException ilə çökəcək.

iOS-da koordinatların alınması

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-da desiredAccuracy sorğunun dəqiqliyini təyin edir: kCLLocationAccuracyBest bütün mövcud mənbələrdən (GPS + Wi-Fi + mobil şəbəkələr) istifadə edir. requestWhenUseAuthorization vasitəsilə icazə sorğusundan sonra sistem istifadəçiyə dialoq göstərir. didUpdateLocations delegatı koordinatlar, hündürlük, sürət və istiqamət ilə CLLocation obyektləri massivini alır. Yeniləmələri dayandırmaq üçün batareyaya qənaət etmək məqsədilə stopUpdatingLocation çağırılır.

Geolokasiyaya icazə sorğusu

Geolokasiyaya giriş hər iki platformada istifadəçinin açıq razılığını tələb edir. Android-də ACCESS_FINE_LOCATION (GPS) və ACCESS_COARSE_LOCATION (Wi-Fi/mobil şəbəkələr) icazələrindən istifadə olunur. Android 10-dan başlayaraq fon girişi üçün ayrıca ACCESS_BACKGROUND_LOCATION icazəsi tələb olunur. iOS-da üç səviyyə mövcuddur: requestWhenInUseAuthorization (yalnız aktiv tətbiq zamanı), requestAlwaysAuthorization (fonda) və dəqiq mövqeləşdirmə üçün vaxt damğaları. Apple Info.plist-də məcburi təsvir tələb edir: NSLocationWhenInUseUsageDescription və ya NSLocationAlwaysAndWhenInUseUsageDescription. Bu açarlar olmadan icazə sorğusu nəzərə alınmır.

Enerji sərfiyyatının optimallaşdırılması

GPS-in davamlı istifadəsi batareyanın doldurulmasını əhəmiyyətli dərəcədə azaldır — maksimum dəqiqlikdə bir saat fasiləsiz iş üçün 30% -ə qədər. Enerji sərfiyyatını optimallaşdırmaq üçün geolokasiyadan yalnız zəruri olduqda istifadə etmək və tətbiq fonda işləyərkən yeniləmələri dayandırmaq tövsiyə olunur. Android-də FusedLocationProviderClient mövcudluq və sorğu prioritetindən asılı olaraq avtomatik olaraq GPS və şəbəkə mənbələri arasında keçid edir. iOS-da minimal enerji sərfiyyatı ilə yeniləmələr üçün significant-change location service (startMonitoringSignificantLocationChanges) istifadə edin — dəqiqlik aşağıdır (500 metrə qədər), lakin batareya demək olar ki, tükənmir. Həmçinin paket emalını tətbiq edin: koordinatları 5-10 dəqiqəlik intervallarla toplayın və Android-də WorkManager və ya iOS-da BGTaskScheduler vasitəsilə bir sorğu ilə serverə göndərin. Sorğu tezliyini 1 saniyədən 30 saniyəyə endirmək geolokasiyanın enerji sərfiyyatını 85% azaldır.

Geolokasiyadan istifadə ssenariləri

Geolokasiya naviqatorlardan tutmuş çatdırılma xidmətlərinə qədər geniş spektrli mobil tətbiqlərdə istifadə olunur. Ən geniş yayılmış ssenarilərə istifadəçinin xəritədə göstərilməsi, reklamın geohədəflənməsi, kuryerlərin izlənməsi, push bildirişləri üçün geozonalar və fitnes fəaliyyətinin izlənməsi daxildir. Hər bir ssenari dəqiqlik və yeniləmə tezliyinə öz yanaşmasını tələb edir. Aşağıda müxtəlif tətbiq növləri üçün konfiqurasiya tövsiyələri olan cədvəl verilmişdir.

Tətbiq növüDəqiqlikIntervalFon rejimi
NaviqatorHIGH (GPS)1-2 sanBəli
ÇatdırılmaBALANCED (GPS+Wi-Fi)10-30 sanBəli
HavaLOW (Wi-Fi/mobil şəbəkələr)Tək dəfəXeyr
Sosial şəbəkəBALANCEDAçılışdaXeyr
FitnesHIGH (GPS)5-10 sanBəli

Geolokasiya funksionallığını layihələşdirərkən nəzərə almaq lazımdır ki, istifadəçilər istənilən vaxt sistem parametrlərində icazəni geri götürə bilərlər. Tətbiq geolokasiya mövcud olmadıqda bu vəziyyəti düzgün idarə etməli və funksionallığın niyə məhdud olduğunu aydın izah etməlidir.

Geofencing (Geozonalar)

Geofencing — xəritədə virtual sərhədlər yaratmaq texnologiyasıdır, onları keçdikdə tətbiq bildiriş alır. Android-də geozonalar Google Play Services-dən GeofencingClient vasitəsilə, iOS-da isə Core Location-dan CLCircularRegion vasitəsilə həyata keçirilir. Zonaya daxil olduqda və ya çıxdıqda sistem tətbiqi oyadır və hadisəni göndərir, hətta tətbiq bağlı və ya kiçildilmiş olsa belə. Bu, mağazaya yaxınlaşdıqda push bildirişləri, yer əsaslı tapşırıq xatırlatmaları və IoT cihazlarının avtomatlaşdırılması üçün istifadə olunur. Geozonaların maksimum sayı məhduddur: Android-də — 100, iOS-da — eyni anda 20. Minimal zona radiusu hər iki platformada 50 metrdir, əks halda sistem yerin təyini xətası səbəbindən işləməyə bilər. Zonaya daxil olduqda sistem Android-də Intent işə salır və ya iOS-da locationManager:didEnterRegion delegatını çağırır.

Tez-tez verilən suallar

Mobil cihazlarda GPS nədir?

Smartfonda GPS 3-5 metr dəqiqliklə koordinatları təyin edən quraşdırılmış peyk naviqasiya siqnal qəbuledicisidir. Cihazlarda dəqiqlik və mövqeləşdirmə sürətini artırmaq üçün QLONASS, Galileo və BeiDou da mövcuddur.

GPS geolokasiya xidmətlərindən nə ilə fərqlənir?

GPS yalnız koordinatların təyin edilməsinin peyk üsuludur. Geolokasiya xidmətləri GPS, Wi-Fi mövqeləşdirmə və mobil rabitə stansiyalarının məlumatlarını birləşdirərək daha sürətli və enerji səmərəli yer təyini təmin edir, xüsusən qapalı məkanlarda.

iOS-da geolokasiyaya icazəni necə tələb etmək olar?

CLLocationManager nümunəsində requestWhenInUseAuthorization() və ya requestAlwaysAuthorization() çağırın. Əvvəlcədən Info.plist-ə geolokasiyadan istifadə səbəbini izah edən mətnlə NSLocationWhenInUseUsageDescription əlavə edin.

Tətbiqdə GPS enerji sərfiyyatını necə azaltmaq olar?

Android-də FusedLocationProviderClient, iOS-da isə significant-change location service istifadə edin. Sorğular arası intervalı 10-30 saniyəyə qədər artırın, ekran söndürüldükdə yeniləmələri söndürün və koordinatların serverə paket göndərilməsini tətbiq edin.

GPS olmadan geolokasiya əldə etmək mümkündürmü?

Bəli, GPS olmadan təxmini yeri Wi-Fi giriş nöqtələri (dəqiqlik 10-50 metr) və ya mobil rabitə stansiyaları (dəqiqlik 100-5000 metr) vasitəsilə təyin etmək olar. Android-də bunun üçün ACCESS_COARSE_LOCATION istifadə olunur.

Xülasə

  • GPS — 3-5 metr dəqiqlikli peyk naviqasiya sistemi, QLONASS, Galileo və BeiDou ilə tamamlanır.
  • Geolokasiya xidmətləri sürətli və dəqiq koordinat təyini üçün GPS, Wi-Fi və mobil rabitə stansiyalarını birləşdirir.
  • Android dəqiqlik və yeniləmə intervalının konfiqurasiyası üçün FusedLocationProviderClient ilə LocationRequest istifadə edir.
  • iOS koordinatları əldə etmək üçün desiredAccuracy və didUpdateLocations delegatı ilə CLLocationManager istifadə edir.
  • İcazələr "istifadə zamanı" və "həmişə" bölünür, fon girişi ayrıca istifadəçi razılığı tələb edir.
  • GPS enerji sərfiyyatı intervalı artırmaq və əhəmiyyətli yer dəyişikliklərindən istifadə etməklə 85% azaldıla bilər.
  • Tövsiyə — ssenaridən asılı olaraq dəqiqlik və yeniləmə intervalını seçin: naviqator HIGH tələb edir, hava — LOW.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun