GPS at mga serbisyo ng geolocation sa mga mobile app — ano ito, mga paraan ng pagkuha ng coordinates

May-akda: IT Sectr Nai-publish: 2026-03-22 Oras ng pagbabasa: 8 min

GPS at mga serbisyo ng geolocation sa mga mobile app — ay mga API para sa pagtukoy ng pisikal na lokasyon ng device gamit ang mga satellite, Wi-Fi at mobile network. Ayon sa Google Android Location Guide (2025), higit sa 60% ng mga mobile app ang gumagamit ng data ng lokasyon para sa pag-personalize ng nilalaman. Ang Fused Location Provider sa Android ay nagsasama ng maraming source para pataasin ang accuracy at bawasan ang konsumo ng kuryente.

Mga pangunahing punto

  • GPS — isang pandaigdigang satellite navigation system, na nagbibigay ng accuracy hanggang 3-5 metro sa bukas na lugar.
  • Mga serbisyo ng geolocation sa Android at iOS ay nagbibigay ng mga API para sa pagkuha ng coordinates sa pamamagitan ng GPS, Wi-Fi at mga cell tower.
  • FusedLocationProviderClient sa Android ay nagsasama ng GPS, Wi-Fi at mga sensor para sa optimal na balanse ng accuracy at konsumo ng kuryente.
  • CLLocationManager sa iOS ay namamahala ng mga request ng geolocation na may setting ng accuracy at background mode.
  • Mga pahintulot sa geolocation ay nahahati sa “kapag ginagamit” at “palagi” — ang pangalawa ay nangangailangan ng karagdagang paliwanag.

Ano ang GPS at mga serbisyo ng geolocation

GPS (Global Positioning System) — ay isang satellite navigation system na binubuo ng 31 aktibong satellite sa orbit sa taas na humigit-kumulang 20 200 km. Sa mga mobile device, ang GPS chip ay tumatanggap ng mga signal mula sa satellite at kinakalkula ang coordinates batay sa trilateration — pagsukat ng oras ng paglalakbay ng signal mula sa maraming satellite. Ang mga serbisyo ng geolocation sa mga mobile OS ay nagdaragdag sa GPS ng data mula sa Wi-Fi access points at cell tower para mapabilis ang pagtukoy ng coordinates (A-GPS) at mapabuti ang accuracy sa loob ng mga gusali. Ayon sa datos ng GPS.gov (2024), ang accuracy ng civilian GPS ay 3-5 metro sa maaliwalas na kalangitan at hanggang 15 metro sa mga lugar na may siksik na gusali.

Mga karagdagang satellite system

Ang mga modernong mobile device ay sumusuporta hindi lamang sa American GPS system, kundi pati na rin sa iba pang global navigation system: Russian GLONASS (24 satellite), European Galileo (28 satellite) at Chinese BeiDou. Ang sabay-sabay na suporta ng maraming sistema ay nagpapataas ng accuracy at bilis ng pagtukoy ng coordinates — ang device ay maaaring gumamit ng hanggang 40 satellite mula sa iba’t ibang sistema para kalkulahin ang posisyon. Sa iOS at Android, ang pagpili ng satellite system ay awtomatiko sa antas ng hardware chip, hindi kailangang pamahalaan ito ng developer.

Paano gumagana ang pagtukoy ng lokasyon

Ang proseso ng pagtukoy ng lokasyon sa isang mobile device ay binubuo ng ilang yugto: pagkolekta ng data mula sa mga source (satellite, Wi-Fi, mobile network), pagsala at pagwawasto ng mga error, pagkalkula ng coordinates at pagpapadala ng resulta sa app. Ang operating system ay namamahala sa prosesong ito sa pamamagitan ng isang pinag-isang serbisyo ng geolocation na nag-o-optimize sa gawain ng lahat ng source para makatipid ng baterya. Sa ibaba ay inilalarawan ang tatlong pangunahing source ng data ng lokasyon.

GPS at satellite navigation

Satellite navigation ay nagbibigay ng maximum accuracy (3-5 metro), ngunit nangangailangan ng direktang tanaw ng langit. Sa loob ng mga gusali o sa siksik na urban na lugar, ang GPS signal ay maaaring humina o ganap na mawala. Ang oras ng unang pagtukoy ng posisyon (TTFF) ay 30-60 segundo sa cold start at 5-10 segundo sa hot start. Ang A-GPS (Assisted GPS) ay nagpapabilis ng start sa pamamagitan ng pag-download ng satellite ephemeris sa internet sa halip na maghintay ng data mula sa satellite.

Pagtukoy ng lokasyon sa pamamagitan ng Wi-Fi at cell tower

Wi-Fi positioning ay gumagamit ng database ng MAC address ng mga access point na may kilalang coordinates. Ang accuracy ay 10-50 metro sa sakop ng Wi-Fi. Ang mga cell tower ay nagbibigay ng accuracy mula 100 metro hanggang ilang kilometro depende sa density ng tower. Ang kombinasyon ng lahat ng source (Fused Location) ay nagbibigay-daan upang makakuha ng coordinates na may makatwirang accuracy sa minimal na konsumo ng kuryente — lalo na kapag naka-off ang GPS chip o hindi available ang satellite signal.

Mga provider ng geolocation sa Android at iOS

Sa parehong platform, ang mga serbisyo ng geolocation ay naipatupad sa pamamagitan ng system API na may iba’t ibang antas ng abstraction. Ang Android ay gumagamit ng FusedLocationProviderClient mula sa Google Play Services, ang iOS ay gumagamit ng CLLocationManager mula sa Core Location. Ang parehong API ay nagbibigay-daan sa paghiling ng isang beses na posisyon o pag-subscribe sa regular na updates. Sa ibaba ay isang halimbawa ng pagkuha ng coordinates sa Android gamit ang Fused Location Provider sa Kotlin.

Pagkuha ng coordinates sa 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("Lokasyon", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

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

Sa halimbawa, ang LocationRequest ay naka-configure na may priority na HIGH_ACCURACY — ito ay nag-aaktibo ng GPS para sa maximum accuracy. Ang setIntervalMillis ay nagtatakda ng nais na update interval (5 segundo), setMinUpdateIntervalMillis — ang minimum interval (2 segundo). Ang callback na onLocationResult ay tinatawag tuwing ang system ay makakatanggap ng bagong coordinates. Mahalagang suriin ang pahintulot bago tawagan ang requestLocationUpdates — kung hindi, ang app ay mag-crash na may SecurityException.

Pagkuha ng coordinates sa 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)")
}

Sa iOS, ang desiredAccuracy ay tumutukoy sa accuracy ng request: ang kCLLocationAccuracyBest ay gumagamit ng lahat ng available na source (GPS + Wi-Fi + mobile network). Pagkatapos humiling ng pahintulot sa pamamagitan ng requestWhenUseAuthorization, ang system ay nagpapakita ng dialog sa user. Ang delegate na didUpdateLocations ay tumatanggap ng array ng CLLocation objects na may coordinates, altitude, bilis at direksyon. Para ihinto ang updates, tinatawag ang stopUpdatingLocation para makatipid ng baterya.

Paghiling ng mga pahintulot sa geolocation

Ang access sa geolocation ay nangangailangan ng tahasang pahintulot ng user sa parehong platform. Sa Android, ginagamit ang mga pahintulot na ACCESS_FINE_LOCATION (GPS) at ACCESS_COARSE_LOCATION (Wi-Fi/mobile network). Simula sa Android 10, ang background access ay nangangailangan ng hiwalay na pahintulot na ACCESS_BACKGROUND_LOCATION. Sa iOS, tatlong level ang available: requestWhenInUseAuthorization (kapag aktibo ang app), requestAlwaysAuthorization (sa background) at time stamp para sa precise positioning. Ang Apple ay nangangailangan ng mandatoryong paglalarawan sa Info.plist: NSLocationWhenInUseUsageDescription o NSLocationAlwaysAndWhenInUseUsageDescription. Kapag wala ang mga key na ito, ang request ng pahintulot ay hindi papansinin.

Pag-optimize ng konsumo ng kuryente

Ang patuloy na paggamit ng GPS ay makabuluhang nagbabawas ng baterya — hanggang 30% kada oras ng tuloy-tuloy na trabaho sa maximum accuracy. Para sa pag-optimize ng konsumo ng kuryente, inirerekomenda na gamitin ang geolocation lamang kapag kinakailangan at ihinto ang updates kapag ang app ay pumunta sa background. Sa Android, ang FusedLocationProviderClient ay awtomatikong lumilipat sa pagitan ng GPS at network source depende sa availability at priority ng request. Sa iOS, gamitin ang significant-change location service (startMonitoringSignificantLocationChanges) para sa updates na may minimal na konsumo ng kuryente — mas mababa ang accuracy (hanggang 500 metro), ngunit halos hindi nauubos ang baterya. Gayundin, mag-apply ng batch processing: mangolekta ng coordinates sa interval na 5-10 minuto at ipadala sa server sa isang request sa pamamagitan ng WorkManager sa Android o BGTaskScheduler sa iOS. Ang pagbabawas ng frequency ng request mula 1 segundo hanggang 30 segundo ay nagbabawas ng konsumo ng kuryente ng geolocation ng 85%.

Mga sitwasyon ng paggamit ng geolocation

Geolocation ay ginagamit sa malawak na spectrum ng mobile apps: mula sa navigator hanggang sa serbisyo ng paghahatid. Ang pinakakaraniwang sitwasyon ay kinabibilangan ng pagpapakita ng user sa mapa, geotargeting ng advertising, pagsubaybay ng courier, geofence para sa push notification at pagsubaybay ng fitness activity. Ang bawat sitwasyon ay nangangailangan ng sariling approach sa accuracy at frequency ng updates. Sa ibaba ay isang table na may mga rekomendasyon sa configuration para sa iba’t ibang uri ng apps.

Uri ng appAccuracyIntervalBackground mode
NavigatorHIGH (GPS)1-2 segOo
PaghahatidBALANCED (GPS+Wi-Fi)10-30 segOo
PanahonLOW (Wi-Fi/mobile network)Isang besesHindi
Social mediaBALANCEDKapag binuksanHindi
FitnessHIGH (GPS)5-10 segOo

Sa pagdidisenyo ng functionality ng geolocation, mahalagang isaalang-alang na ang mga user ay maaaring bawiin ang pahintulot anumang oras sa pamamagitan ng system settings. Ang app ay dapat na tama na humawak ng sitwasyon kapag ang geolocation ay hindi available at magpakita ng malinaw na paliwanag kung bakit limitado ang functionality.

Geofencing

Geofencing — teknolohiya ng paglikha ng virtual na hangganan sa mapa, kung saan kapag na-cross ay makakatanggap ng notification ang app. Sa Android, ang geofence ay naipatupad sa pamamagitan ng GeofencingClient mula sa Google Play Services, sa iOS — sa pamamagitan ng CLCircularRegion mula sa Core Location. Sa pagpasok o paglabas ng zone, ginigising ng system ang app at nagpapadala ng event kahit na ang app ay sarado o na-minimize. Ito ay ginagamit para sa push notification kapag lumalapit sa tindahan, mga paalala ng gawain batay sa lokasyon at automation ng IoT devices. Ang maximum na bilang ng geofence ay limitado: sa Android — 100, sa iOS — 20 sabay-sabay. Ang minimum na radius ng zone ay 50 metro sa parehong platform, kung hindi ay maaaring hindi gumana ang system dahil sa error ng pagtukoy ng lokasyon. Sa pagpasok ng zone, ang system ay nag-start ng Intent sa Android o tumatawag ng delegate na locationManager:didEnterRegion sa iOS.

Mga madalas itanong

Ano ang GPS sa mga mobile device?

Ang GPS sa smartphone ay isang built-in na receiver ng signal ng satellite navigation system na tumutukoy ng coordinates na may accuracy na 3-5 metro. Sa mga device ay available din ang GLONASS, Galileo at BeiDou para pataasin ang accuracy at bilis ng positioning.

Ano ang pagkakaiba ng GPS sa mga serbisyo ng geolocation?

Ang GPS ay tanging satellite method ng pagtukoy ng coordinates. Ang mga serbisyo ng geolocation ay nagsasama ng GPS, Wi-Fi positioning at data ng cell tower para sa mas mabilis at energy-efficient na pagtukoy ng lokasyon, lalo na sa loob ng mga gusali.

Paano humiling ng pahintulot sa geolocation sa iOS?

Tawagan ang requestWhenInUseAuthorization() o requestAlwaysAuthorization() sa isang instance ng CLLocationManager. Idagdag dati ang NSLocationWhenInUseUsageDescription sa Info.plist na may malinaw na teksto ng dahilan ng paggamit ng geolocation.

Paano bawasan ang konsumo ng kuryente ng GPS sa app?

Gamitin ang FusedLocationProviderClient sa Android at significant-change location service sa iOS. Taasan ang interval sa pagitan ng request sa 10-30 segundo, i-off ang updates kapag naka-off ang screen at mag-apply ng batch na pagpapadala ng coordinates sa server.

Maaari bang makakuha ng geolocation nang walang GPS?

Oo, nang walang GPS ay maaaring matukoy ang tinatayang lokasyon sa pamamagitan ng Wi-Fi access points (accuracy 10-50 metro) o cell tower (accuracy 100-5000 metro). Sa Android, para dito ginagamit ang ACCESS_COARSE_LOCATION.

Buod

  • GPS — satellite navigation system na may accuracy na 3-5 metro, dinadagdagan ng GLONASS, Galileo at BeiDou.
  • Mga serbisyo ng geolocation ay nagsasama ng GPS, Wi-Fi at cell tower para sa mabilis at tumpak na pagtukoy ng coordinates.
  • Android ay gumagamit ng FusedLocationProviderClient na may LocationRequest para i-configure ang accuracy at update interval.
  • iOS ay gumagamit ng CLLocationManager na may desiredAccuracy at delegate na didUpdateLocations para sa pagkuha ng coordinates.
  • Mga pahintulot ay nahahati sa “kapag ginagamit” at “palagi”, background access ay nangangailangan ng hiwalay na pag-apruba ng user.
  • Konsumo ng kuryente ng GPS ay maaaring mabawasan ng 85% sa pamamagitan ng pagtaas ng interval at paggamit ng makabuluhang pagbabago ng lokasyon.
  • Rekomendasyon — piliin ang accuracy at update interval batay sa sitwasyon: navigator ay nangangailangan ng HIGH, panahon — LOW.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din