Mobil uygulamalarda GPS ve konum hizmetleri — nedir ve koordinat alma yöntemleri

Yazar: IT Sectr Yayınlanma: 2026-03-22 Okuma süresi: 8 dk

Mobil uygulamalarda GPS ve konum hizmetleri, uydular, Wi-Fi ve mobil ağlar kullanarak bir cihazın fiziksel konumunu belirlemek için API’lerdir. Google Android Location Guide (2025)’e göre, mobil uygulamaların %60’ından fazlası içeriği kişiselleştirmek için konum verilerini kullanır. Android’deki Fused Location Provider, doğruluğu artırmak ve güç tüketimini azaltmak için birden fazla kaynağı birleştirir.

Önemli Noktalar

  • GPS, açık alanlarda 3-5 metre doğruluk sağlayan küresel bir uydu navigasyon sistemidir.
  • Konum hizmetleri, Android ve iOS’ta GPS, Wi-Fi ve hücre kuleleri aracılığıyla koordinat almak için API’ler sağlar.
  • FusedLocationProviderClient, Android’de doğruluk ve güç tüketimi arasında optimum denge için GPS, Wi-Fi ve sensörleri birleştirir.
  • CLLocationManager, iOS’ta doğruluk ayarları ve arka plan moduyla konum isteklerini yönetir.
  • Konum izinleri “kullanım sırasında” ve “her zaman” olarak ikiye ayrılır — ikincisi ek açıklama gerektirir.

GPS ve konum hizmetleri nedir

GPS (Küresel Konumlandırma Sistemi), yaklaşık 20.200 km yükseklikte yörüngeye oturtulmuş 31 aktif uydudan oluşan bir uydu navigasyon sistemidir. Mobil cihazlarda, GPS çipi uydulardan sinyaller alır ve üçgenleme — birden fazla uydudan sinyal seyahat süresinin ölçülmesi — temelinde koordinatları hesaplar. Mobil işletim sistemlerindeki konum hizmetleri, daha hızlı konum belirleme (A-GPS) ve iç mekan doğruluğunu iyileştirmek için GPS’e Wi-Fi erişim noktaları ve hücre kulelerinden veri ekler. GPS.gov’a (2024) göre, sivil GPS’in doğruluğu açık gökyüzü koşullarında 3-5 metre ve yoğun kentsel alanlarda 15 metreye kadardır.

Ek uydu sistemleri

Modern mobil cihazlar yalnızca Amerikan GPS sistemini değil, aynı zamanda Rus GLONASS (24 uydu), Avrupa Galileo (28 uydu) ve Çin BeiDou gibi diğer küresel navigasyon uydu sistemlerini de destekler. Birden fazla sistemi aynı anda desteklemek, konum belirlemenin doğruluğunu ve hızını artırır — cihaz, konumunu hesaplamak için farklı sistemlerden 40’a kadar uydu kullanabilir. iOS ve Android’de uydu sistemi seçimi donanım çipi düzeyinde otomatik olarak yapılır, geliştiricilerin bunu yönetmesi gerekmez.

Konum belirleme nasıl çalışır

Mobil cihazda konum belirleme süreci birkaç aşamadan oluşur: kaynaklardan (uydular, Wi-Fi, hücreler) veri toplama, hataları filtreleme ve düzeltme, koordinatları hesaplama ve sonucu uygulamaya iletme. İşletim sistemi, pil tasarrufu için tüm kaynakları optimize eden birleşik bir konum hizmeti aracılığıyla bu süreci yönetir. Aşağıda konum verilerinin üç ana kaynağı açıklanmıştır.

GPS ve uydu navigasyonu

Uydu navigasyonu maksimum doğruluk (3-5 metre) sağlar, ancak açık bir gökyüzü görüşü gerektirir. İç mekanlarda veya yoğun kentsel alanlarda, GPS sinyali zayıflayabilir veya tamamen kaybolabilir. İlk konum belirleme süresi (TTFF) soğuk başlatma için 30-60 saniye ve sıcak başlatma için 5-10 saniyedir. A-GPS (Yardımlı GPS), uydulardan veri beklemek yerine internet üzerinden uydu efemeris verilerini indirerek başlatmayı hızlandırır.

Wi-Fi ve hücre kulesi konum belirleme

Wi-Fi konum belirleme, bilinen koordinatlara sahip erişim noktalarının MAC adreslerinden oluşan bir veritabanı kullanır. Wi-Fi kapsama alanı içinde doğruluk 10-50 metredir. Hücre kuleleri, kul yoğunluğuna bağlı olarak 100 metreden birkaç kilometreye kadar doğruluk sağlar. Tüm kaynakların (Fused Location) birleştirilmesi, özellikle GPS çipi kapalıyken veya uydu sinyalleri mevcut değilken, minimum güç tüketimiyle makul doğrulukta koordinat elde edilmesini sağlar.

Android ve iOS’ta konum sağlayıcıları

Her iki platformda da konum hizmetleri, farklı soyutlama düzeylerinde sistem API’leri aracılığıyla uygulanır. Android, Google Play Services’ten FusedLocationProviderClient’ı kullanırken, iOS, Core Location’dan CLLocationManager’ı kullanır. Her iki API de tek seferlik konum isteme veya düzenli güncellemelere abone olma imkanı sunar. Aşağıda, Kotlin’de Fused Location Provider kullanarak Android’de koordinat alma örneği verilmiştir.

Android’de koordinat alma

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

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

Örnekte, LocationRequest PRIORITY_HIGH_ACCURACY ile yapılandırılmıştır — bu, maksimum doğruluk için GPS’i etkinleştirir. setIntervalMillis istenen güncelleme aralığını (5 saniye) ayarlar, setMinUpdateIntervalMillis minimum aralığı (2 saniye) ayarlar. onLocationResult geri çağrısı, sistem her yeni koordinat aldığında çağrılır. requestLocationUpdates’i çağırmadan önce izni kontrol etmek önemlidir — aksi takdirde uygulama SecurityException ile çöker.

iOS’ta koordinat alma

swift
import CoreLocation

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

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

iOS’ta desiredAccuracy, isteğin doğruluğunu belirler: kCLLocationAccuracyBest, mevcut tüm kaynakları (GPS + Wi-Fi + hücreler) kullanır. requestWhenInUseAuthorization aracılığıyla izin istendikten sonra sistem, kullanıcıya bir iletişim kutusu gösterir. didUpdateLocations delegesi, koordinatlar, yükseklik, hız ve yön ile CLLocation nesnelerinden oluşan bir dizi alır. Güncellemeleri durdurmak için, pil tasarrufu için stopUpdatingLocation çağrılır.

Konum izinleri isteme

Konuma erişim, her iki platformda da kullanıcının açık iznini gerektirir. Android’de ACCESS_FINE_LOCATION (GPS) ve ACCESS_COARSE_LOCATION (Wi-Fi/hücreler) izinleri kullanılır. Android 10’dan itibaren arka plan erişimi için ayrı bir izin olan ACCESS_BACKGROUND_LOCATION gerekir. iOS’ta üç seviye mevcuttur: requestWhenInUseAuthorization (yalnızca uygulama etkin olduğunda), requestAlwaysAuthorization (arka planda) ve hassas konum belirleme için geçici zaman damgaları. Apple, Info.plist’te zorunlu bir açıklama gerektirir: NSLocationWhenInUseUsageDescription veya NSLocationAlwaysAndWhenInUseUsageDescription. Bu anahtarlar olmadan, izin isteği görmezden gelinir.

Güç tüketimi optimizasyonu

GPS’in sürekli kullanımı, pili önemli ölçüde tüketir — maksimum doğrulukta sürekli çalışmada saatte %30’a kadar. Güç tüketimini optimize etmek için, konum hizmetlerini yalnızca gerektiğinde kullanmanız ve uygulama arka plana geçtiğinde güncellemeleri durdurmanız önerilir. Android’de, FusedLocationProviderClient, kullanılabilirlik ve istek önceliğine bağlı olarak GPS ve ağ kaynakları arasında otomatik olarak geçiş yapar. iOS’ta, minimum güç tüketimiyle güncellemeler için önemli konum değişikliği hizmetini (startMonitoringSignificantLocationChanges) kullanın — doğruluk daha düşüktür (500 metreye kadar), ancak pil neredeyse hiç tüketilmez. Ayrıca toplu işleme uygulayın: koordinatları 5-10 dakikalık aralıklarla toplayın ve Android’de WorkManager veya iOS’ta BGTaskScheduler aracılığıyla sunucuya tek bir istekte gönderin. İstek sıklığını 1 saniyeden 30 saniyeye düşürmek, konum hizmetlerinin güç tüketimini %85 azaltır.

Konum belirleme kullanım senaryoları

Konum belirleme, navigasyon uygulamalarından teslimat hizmetlerine kadar geniş bir mobil uygulama yelpazesinde kullanılır. En yaygın senaryolar arasında kullanıcıyı haritada gösterme, coğrafi hedefli reklamcılık, kurye takibi, push bildirimleri için coğrafi çit ve fitness aktivite takibi yer alır. Her senaryo, doğruluk ve güncelleme sıklığı konusunda kendi yaklaşımını gerektirir. Aşağıda, farklı uygulama türleri için yapılandırma önerilerini içeren bir tablo bulunmaktadır.

Uygulama türüDoğrulukAralıkArka plan modu
NavigasyonHIGH (GPS)1-2 saniyeEvet
TeslimatBALANCED (GPS+Wi-Fi)10-30 saniyeEvet
Hava durumuLOW (Wi-Fi/hücreler)Bir kezHayır
Sosyal ağBALANCEDAçılıştaHayır
FitnessHIGH (GPS)5-10 saniyeEvet

Konum işlevselliğini tasarlarken, kullanıcıların sistemi ayarları aracılığıyla izni istedikleri zaman iptal edebileceklerini dikkate almak önemlidir. Uygulama, konum belirlemenin mevcut olmadığı durumları düzgün bir şekilde ele almalı ve işlevselliğin neden sınırlı olduğuna dair net bir açıklama göstermelidir.

Coğrafi çit (Geofencing)

Geofencing, harita üzerinde sanal sınırlar oluşturma teknolojisidir. Bu sınırlar aşıldığında, uygulama bir bildirim alır. Android’de coğrafi çitler, Google Play Services’ten GeofencingClient aracılığıyla, iOS’ta ise Core Location’dan CLCircularRegion aracılığıyla uygulanır. Bir bölgeye girildiğinde veya çıkıldığında, sistem uygulamayı uyandırır ve uygulama kapalı veya küçültülmüş olsa bile bir olay gönderir. Bu, bir mağazaya yaklaşıldığında push bildirimleri, konum tabanlı görev hatırlatıcıları ve IoT cihaz otomasyonu için kullanılır. Maksimum coğrafi çit sayısı sınırlıdır: Android’de 100, iOS’ta aynı anda 20. Minimum bölge yarıçapı her iki platformda da 50 metredir — aksi takdirde konum belirleme hataları nedeniyle sistem tetiklenmeyebilir. Bir bölgeye girildiğinde, sistem Android’de bir Intent başlatır veya iOS’ta locationManager:didEnterRegion temsilcisini çağırır.

Sıkça sorulan sorular

Mobil cihazlarda GPS nedir?

Akıllı telefondaki GPS, 3-5 metre doğrulukla koordinatları belirleyen, uydu navigasyon sistemi sinyallerini alan yerleşik bir alıcıdır. Cihazlar, doğruluk ve konum belirleme hızını iyileştirmek için GLONASS, Galileo ve BeiDou’yu da destekler.

GPS, konum hizmetlerinden nasıl farklıdır?

GPS, yalnızca koordinatları belirlemek için bir uydu yöntemidir. Konum hizmetleri, özellikle iç mekanlarda daha hızlı ve enerji açısından daha verimli konum belirleme için GPS, Wi-Fi konum belirleme ve hücre kulesi verilerini birleştirir.

iOS’ta konum izni nasıl istenir?

Bir CLLocationManager örneğinde requestWhenInUseAuthorization() veya requestAlwaysAuthorization() çağrın. Öncelikle, konum hizmetlerine neden ihtiyaç duyulduğuna dair net bir açıklama içeren NSLocationWhenInUseUsageDescription’ı Info.plist’e ekleyin.

Bir uygulamada GPS güç tüketimi nasıl azaltılır?

Android’de FusedLocationProviderClient’ı ve iOS’ta önemli konum değişikliği hizmetini kullanın. İstekler arasındaki aralığı 10-30 saniyeye çıkarın, ekran kapalıyken güncellemeleri devre dışı bırakın ve sunucuya toplu koordinat gönderme uygulayın.

GPS olmadan konum alınabilir mi?

Evet, GPS olmadan Wi-Fi erişim noktaları (doğruluk 10-50 metre) veya hücre kuleleri (doğruluk 100-5000 metre) kullanarak yaklaşık konumu belirleyebilirsiniz. Android’de bunun için ACCESS_COARSE_LOCATION kullanılır.

Özet

  • GPS, 3-5 metre doğrulukta bir uydu navigasyon sistemidir ve GLONASS, Galileo ve BeiDou ile desteklenir.
  • Konum hizmetleri, hızlı ve doğru koordinat belirleme için GPS, Wi-Fi ve hücre kulelerini birleştirir.
  • Android, doğruluk ve güncelleme aralıklarını yapılandırmak için FusedLocationProviderClient ve LocationRequest kullanır.
  • iOS, koordinat almak için desiredAccuracy ve didUpdateLocations delegesi ile CLLocationManager kullanır.
  • İzinler “kullanım sırasında” ve “her zaman” olarak ikiye ayrılır — arka plan erişimi için ayrı kullanıcı onayı gerekir.
  • GPS güç tüketimi, aralığı artırarak ve önemli konum değişikliklerini kullanarak %85 azaltılabilir.
  • Öneri — senaryoya göre doğruluk ve güncelleme aralığını seçin: navigasyon HIGH gerektirir, hava durumu LOW gerektirir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun