GPS και υπηρεσίες γεωτοποθεσίας σε εφαρμογές κινητών — τι είναι, τρόποι λήψης συντεταγμένων

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-03-22 Χρόνος ανάγνωσης: 8 λεπ

GPS και υπηρεσίες γεωτοποθεσίας σε εφαρμογές κινητών — είναι API για τον προσδιορισμό της φυσικής τοποθεσίας μιας συσκευής με χρήση δορυφόρων, Wi-Fi και κινητών δικτύων. Σύμφωνα με το Google Android Location Guide (2025), περισσότερο από το 60% των εφαρμογών κινητών χρησιμοποιούν δεδομένα τοποθεσίας για εξατομίκευση περιεχομένου. Ο Fused Location Provider στο Android συνδυάζει πολλαπλές πηγές για αύξηση της ακρίβειας και μείωση της κατανάλωσης ενέργειας.

Κύρια σημεία

  • GPS — παγκόσμιο δορυφορικό σύστημα πλοήγησης, που παρέχει ακρίβεια έως 3-5 μέτρα σε ανοιχτό χώρο.
  • Υπηρεσίες γεωτοποθεσίας σε Android και iOS παρέχουν API για λήψη συντεταγμένων μέσω GPS, Wi-Fi και κεραιών κινητής τηλεφωνίας.
  • FusedLocationProviderClient στο Android συνδυάζει GPS, Wi-Fi και αισθητήρες για βέλτιστη ισορροπία ακρίβειας και κατανάλωσης ενέργειας.
  • CLLocationManager στο iOS διαχειρίζεται αιτήματα γεωτοποθεσίας με ρύθμιση ακρίβειας και λειτουργία παρασκηνίου.
  • Άδειες γεωτοποθεσίας χωρίζονται σε «κατά τη χρήση» και «πάντα» — η δεύτερη απαιτεί πρόσθετη αιτιολόγηση.

Τι είναι το GPS και οι υπηρεσίες γεωτοποθεσίας

GPS (Global Positioning System) — είναι ένα δορυφορικό σύστημα πλοήγησης που αποτελείται από 31 ενεργούς δορυφόρους σε τροχιά ύψους περίπου 20 200 km. Σε κινητές συσκευές, το τσιπ GPS λαμβάνει σήματα από δορυφόρους και υπολογίζει συντεταγμένες με βάση τον τριπλευρισμό — μέτρηση του χρόνου διάδοσης σήματος από πολλαπλούς δορυφόρους. Οι υπηρεσίες γεωτοποθεσίας σε κινητά λειτουργικά συστήματα προσθέτουν στο GPS δεδομένα από σημεία πρόσβασης Wi-Fi και κεραίες κινητής τηλεφωνίας για επιτάχυνση του καθορισμού συντεταγμένων (A-GPS) και βελτίωση της ακρίβειας σε εσωτερικούς χώρους. Σύμφωνα με δεδομένα του GPS.gov (2024), η ακρίβεια του πολιτικού GPS είναι 3-5 μέτρα σε καθαρό ουρανό και έως 15 μέτρα σε συνθήκες πυκνής δόμησης.

Πρόσθετα δορυφορικά συστήματα

Οι σύγχρονες κινητές συσκευές υποστηρίζουν όχι μόνο το αμερικανικό σύστημα GPS, αλλά και άλλα παγκόσμια συστήματα πλοήγησης: το ρωσικό GLONASS (24 δορυφόροι), το ευρωπαϊκό Galileo (28 δορυφόροι) και το κινεζικό BeiDou. Η ταυτόχρονη υποστήριξη πολλαπλών συστημάτων αυξάνει την ακρίβεια και την ταχύτητα καθορισμού συντεταγμένων — η συσκευή μπορεί να χρησιμοποιήσει έως 40 δορυφόρους από διαφορετικά συστήματα για τον υπολογισμό θέσης. Σε iOS και Android, η επιλογή δορυφορικού συστήματος γίνεται αυτόματα σε επίπεδο τσιπ υλικού, ο προγραμματιστής δεν χρειάζεται να το διαχειριστεί.

Πώς λειτουργεί ο καθορισμός τοποθεσίας

Η διαδικασία καθορισμού τοποθεσίας σε μια κινητή συσκευή αποτελείται από διάφορα στάδια: συλλογή δεδομένων από πηγές (δορυφόροι, Wi-Fi, κινητά δίκτυα), φιλτράρισμα και διόρθωση σφαλμάτων, υπολογισμός συντεταγμένων και μεταφορά του αποτελέσματος στην εφαρμογή. Το λειτουργικό σύστημα διαχειρίζεται αυτή τη διαδικασία μέσω μιας ενιαίας υπηρεσίας γεωτοποθεσίας που βελτιστοποιεί την εργασία όλων των πηγών για εξοικονόμηση μπαταρίας. Παρακάτω περιγράφονται οι τρεις κύριες πηγές δεδομένων τοποθεσίας.

GPS και δορυφορική πλοήγηση

Δορυφορική πλοήγηση παρέχει μέγιστη ακρίβεια (3-5 μέτρα), αλλά απαιτεί άμεση ορατότητα του ουρανού. Σε εσωτερικούς χώρους ή σε πυκνή αστική δόμηση, το σήμα GPS μπορεί να εξασθενήσει ή να χαθεί εντελώς. Ο χρόνος πρώτου καθορισμού θέσης (TTFF) είναι 30-60 δευτερόλεπτα κατά την ψυχρή εκκίνηση και 5-10 δευτερόλεπτα κατά τη θερμή εκκίνηση. Το A-GPS (Assisted GPS) επιταχύνει την εκκίνηση με λήψη εφημερίδων δορυφόρων μέσω διαδικτύου αντί αναμονής δεδομένων από τους δορυφόρους.

Καθορισμός θέσης μέσω Wi-Fi και κεραιών κινητής τηλεφωνίας

Wi-Fi εντοπισμός χρησιμοποιεί βάση δεδομένων διευθύνσεων MAC σημείων πρόσβασης με γνωστές συντεταγμένες. Η ακρίβεια είναι 10-50 μέτρα εντός εμβέλειας Wi-Fi. Οι κεραίες κινητής τηλεφωνίας παρέχουν ακρίβεια από 100 μέτρα έως αρκετά χιλιόμετρα ανάλογα με την πυκνότητα των κεραιών. Ο συνδυασμός όλων των πηγών (Fused Location) επιτρέπει τη λήψη συντεταγμένων με λογική ακρίβεια με ελάχιστη κατανάλωση ενέργειας — ειδικά όταν το τσιπ GPS είναι απενεργοποιημένο ή το δορυφορικό σήμα δεν είναι διαθέσιμο.

Πάροχοι γεωτοποθεσίας σε Android και iOS

Και στις δύο πλατφόρμες, οι υπηρεσίες γεωτοποθεσίας υλοποιούνται μέσω συστημικών API με διαφορετικό βαθμό αφαίρεσης. Το Android χρησιμοποιεί το FusedLocationProviderClient από το Google Play Services, το iOS — το CLLocationManager από το Core Location. Και τα δύο API επιτρέπουν την αίτηση εφάπαξ θέσης ή εγγραφή σε τακτικές ενημερώσεις. Παρακάτω υπάρχει ένα παράδειγμα λήψης συντεταγμένων σε Android με χρήση του Fused Location Provider σε Kotlin.

Λήψη συντεταγμένων σε 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("Τοποθεσία", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

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

Στο παράδειγμα, το LocationRequest διαμορφώνεται με προτεραιότητα HIGH_ACCURACY — αυτό ενεργοποιεί το GPS για μέγιστη ακρίβεια. Το setIntervalMillis ορίζει το επιθυμητό διάστημα ενημέρωσης (5 δευτερόλεπτα), το setMinUpdateIntervalMillis — το ελάχιστο (2 δευτερόλεπτα). Το callback onLocationResult καλείται κάθε φορά που το σύστημα λαμβάνει νέες συντεταγμένες. Είναι σημαντικό να ελέγχετε την άδεια πριν καλέσετε το requestLocationUpdates — διαφορετικά η εφαρμογή θα καταρρεύσει με SecurityException.

Λήψη συντεταγμένων σε 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)")
}

Στο iOS, το desiredAccuracy καθορίζει την ακρίβεια του αιτήματος: το kCLLocationAccuracyBest χρησιμοποιεί όλες τις διαθέσιμες πηγές (GPS + Wi-Fi + κινητά δίκτυα). Μετά την αίτηση άδειας μέσω requestWhenUseAuthorization, το σύστημα εμφανίζει διάλογο στον χρήστη. Ο εκπρόσωπος didUpdateLocations λαμβάνει μια συστοιχία αντικειμένων CLLocation με συντεταγμένες, υψόμετρο, ταχύτητα και κατεύθυνση. Για διακοπή των ενημερώσεων, καλείται το stopUpdatingLocation για εξοικονόμηση μπαταρίας.

Αίτηση αδειών γεωτοποθεσίας

Η πρόσβαση σε γεωτοποθεσία απαιτεί ρητή άδεια του χρήστη και στις δύο πλατφόρμες. Στο Android χρησιμοποιούνται οι άδειες ACCESS_FINE_LOCATION (GPS) και ACCESS_COARSE_LOCATION (Wi-Fi/κινητά δίκτυα). Από το Android 10, η πρόσβαση στο παρασκήνιο απαιτεί ξεχωριστή άδεια ACCESS_BACKGROUND_LOCATION. Στο iOS είναι διαθέσιμα τρία επίπεδα: requestWhenInUseAuthorization (μόνο όταν η εφαρμογή είναι ενεργή), requestAlwaysAuthorization (στο παρασκήνιο) και χρονικές σημάνσεις για ακριβή εντοπισμό. Η Apple απαιτεί υποχρεωτική περιγραφή στο Info.plist: NSLocationWhenInUseUsageDescription ή NSLocationAlwaysAndWhenInUseUsageDescription. Χωρίς αυτά τα κλειδιά, το αίτημα άδειας αγνοείται.

Βελτιστοποίηση κατανάλωσης ενέργειας

Η συνεχής χρήση GPS μειώνει σημαντικά τη διάρκεια ζωής της μπαταρίας — έως 30% ανά ώρα συνεχούς λειτουργίας σε μέγιστη ακρίβεια. Για βελτιστοποίηση της κατανάλωσης ενέργειας, συνιστάται η χρήση γεωτοποθεσίας μόνο όταν είναι απαραίτητο και η διακοπή ενημερώσεων όταν η εφαρμογή πηγαίνει στο παρασκήνιο. Στο Android, το FusedLocationProviderClient μεταβαίνει αυτόματα μεταξύ GPS και δικτυακών πηγών ανάλογα με τη διαθεσιμότητα και την προτεραιότητα του αιτήματος. Στο iOS, χρησιμοποιήστε την υπηρεσία σημαντικών αλλαγών τοποθεσίας (startMonitoringSignificantLocationChanges) για ενημερώσεις με ελάχιστη κατανάλωση ενέργειας — η ακρίβεια είναι χαμηλότερη (έως 500 μέτρα), αλλά η μπαταρία σχεδόν δεν καταναλώνεται. Επίσης, εφαρμόστε μαζική επεξεργασία: συλλέξτε συντεταγμένες σε διάστημα 5-10 λεπτών και στείλτε στον διακομιστή με ένα αίτημα μέσω WorkManager σε Android ή BGTaskScheduler σε iOS. Η μείωση της συχνότητας αιτημάτων από 1 δευτερόλεπτο σε 30 δευτερόλεπτα μειώνει την κατανάλωση ενέργειας γεωτοποθεσίας κατά 85%.

Σενάρια χρήσης γεωτοποθεσίας

Γεωτοποθεσία χρησιμοποιείται σε ένα ευρύ φάσμα εφαρμογών κινητών: από πλοηγούς έως υπηρεσίες παράδοσης. Τα πιο κοινά σενάρια περιλαμβάνουν εμφάνιση του χρήστη στον χάρτη, γεωστόχευση διαφημίσεων, παρακολούθηση ταχυμεταφορών, γεωπερίφραξη για ειδοποιήσεις push και παρακολούθηση δραστηριότητας γυμναστικής. Κάθε σενάριο απαιτεί τη δική του προσέγγιση στην ακρίβεια και τη συχνότητα ενημερώσεων. Παρακάτω υπάρχει ένας πίνακας με συστάσεις διαμόρφωσης για διαφορετικούς τύπους εφαρμογών.

Τύπος εφαρμογήςΑκρίβειαΔιάστημαΛειτουργία παρασκηνίου
ΠλοηγόςHIGH (GPS)1-2 δευτΝαι
ΠαράδοσηBALANCED (GPS+Wi-Fi)10-30 δευτΝαι
ΚαιρόςLOW (Wi-Fi/κινητά δίκτυα)ΕφάπαξΌχι
Κοινωνικό δίκτυοBALANCEDΚατά το άνοιγμαΌχι
ΓυμναστικήHIGH (GPS)5-10 δευτΝαι

Κατά τον σχεδιασμό λειτουργικότητας γεωτοποθεσίας, είναι σημαντικό να λαμβάνεται υπόψη ότι οι χρήστες μπορούν να ανακαλέσουν την άδεια ανά πάσα στιγμή μέσω των ρυθμίσεων συστήματος. Η εφαρμογή πρέπει να χειρίζεται σωστά την κατάσταση όταν η γεωτοποθεσία δεν είναι διαθέσιμη και να εμφανίζει σαφή επεξήγηση γιατί η λειτουργικότητα είναι περιορισμένη.

Γεωπερίφραξη (Geofencing)

Geofencing — τεχνολογία δημιουργίας εικονικών ορίων στον χάρτη, κατά τη διέλευση των οποίων η εφαρμογή λαμβάνει ειδοποίηση. Στο Android, οι γεωπεριφράξεις υλοποιούνται μέσω GeofencingClient από το Google Play Services, στο iOS — μέσω CLCircularRegion από το Core Location. Κατά την είσοδο ή έξοδο από μια ζώνη, το σύστημα αφυπνίζει την εφαρμογή και στέλνει ένα συμβάν ακόμα κι αν η εφαρμογή είναι κλειστή ή ελαχιστοποιημένη. Αυτό χρησιμοποιείται για ειδοποιήσεις push κατά την προσέγγιση σε κατάστημα, υπενθυμίσεις εργασιών βάσει τοποθεσίας και αυτοματοποίηση συσκευών IoT. Ο μέγιστος αριθμός γεωπεριφράξεων είναι περιορισμένος: στο Android — 100, στο iOS — 20 ταυτόχρονα. Η ελάχιστη ακτίνα ζώνης είναι 50 μέτρα και στις δύο πλατφόρμες, διαφορετικά το σύστημα μπορεί να μην αντιδράσει λόγω σφάλματος καθορισμού τοποθεσίας. Κατά την είσοδο σε ζώνη, το σύστημα εκκινεί ένα Intent στο Android ή καλεί τον εκπρόσωπο locationManager:didEnterRegion στο iOS.

Συχνές ερωτήσεις

Τι είναι το GPS σε κινητές συσκευές;

GPS στο smartphone είναι ένας ενσωματωμένος δέκτης σημάτων του δορυφορικού συστήματος πλοήγησης που καθορίζει συντεταγμένες με ακρίβεια 3-5 μέτρων. Στις συσκευές είναι επίσης διαθέσιμα GLONASS, Galileo και BeiDou για αύξηση της ακρίβειας και ταχύτητας εντοπισμού θέσης.

Σε τι διαφέρει το GPS από τις υπηρεσίες γεωτοποθεσίας;

Το GPS είναι μόνο η δορυφορική μέθοδος καθορισμού συντεταγμένων. Οι υπηρεσίες γεωτοποθεσίας συνδυάζουν GPS, εντοπισμό Wi-Fi και δεδομένα κεραιών κινητής τηλεφωνίας για ταχύτερο και ενεργειακά αποδοτικότερο καθορισμό τοποθεσίας, ειδικά σε εσωτερικούς χώρους.

Πώς να ζητήσω άδεια γεωτοποθεσίας σε iOS;

Καλέστε requestWhenInUseAuthorization() ή requestAlwaysAuthorization() σε ένα στιγμιότυπο CLLocationManager. Προσθέστε προηγουμένως το NSLocationWhenInUseUsageDescription στο Info.plist με σαφές κείμενο του λόγου χρήσης γεωτοποθεσίας.

Πώς να μειώσω την κατανάλωση ενέργειας GPS σε μια εφαρμογή;

Χρησιμοποιήστε FusedLocationProviderClient σε Android και significant-change location service σε iOS. Αυξήστε το διάστημα μεταξύ αιτημάτων σε 10-30 δευτερόλεπτα, απενεργοποιήστε τις ενημερώσεις όταν η οθόνη είναι σβηστή και εφαρμόστε μαζική αποστολή συντεταγμένων στον διακομιστή.

Μπορώ να λάβω γεωτοποθεσία χωρίς GPS;

Ναι, χωρίς GPS μπορεί να καθοριστεί κατά προσέγγιση τοποθεσία μέσω σημείων πρόσβασης Wi-Fi (ακρίβεια 10-50 μέτρα) ή κεραιών κινητής τηλεφωνίας (ακρίβεια 100-5000 μέτρα). Στο Android, για αυτό χρησιμοποιείται το ACCESS_COARSE_LOCATION.

Περίληψη

  • GPS — δορυφορικό σύστημα πλοήγησης με ακρίβεια 3-5 μέτρων, συμπληρούμενο από GLONASS, Galileo και BeiDou.
  • Υπηρεσίες γεωτοποθεσίας συνδυάζουν GPS, Wi-Fi και κεραίες κινητής τηλεφωνίας για γρήγορο και ακριβή καθορισμό συντεταγμένων.
  • Android χρησιμοποιεί FusedLocationProviderClient με LocationRequest για διαμόρφωση ακρίβειας και διαστήματος ενημέρωσης.
  • iOS χρησιμοποιεί CLLocationManager με desiredAccuracy και εκπρόσωπο didUpdateLocations για λήψη συντεταγμένων.
  • Άδειες χωρίζονται σε «κατά τη χρήση» και «πάντα», η πρόσβαση στο παρασκήνιο απαιτεί ξεχωριστή έγκριση χρήστη.
  • Κατανάλωση ενέργειας GPS μπορεί να μειωθεί κατά 85% με αύξηση του διαστήματος και χρήση σημαντικών αλλαγών τοποθεσίας.
  • Σύσταση — επιλέξτε ακρίβεια και διάστημα ενημέρωσης ανάλογα με το σενάριο: ο πλοηγός απαιτεί HIGH, ο καιρός — LOW.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης