Autore Topic: Localizzazione tramite GPS  (Letto 1443 volte)

Offline mc92

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7
Localizzazione tramite GPS
« il: 14 Ottobre 2013, 12:48:06 CEST »
0
Ciao a tutti ragazzi, sono nuovo del forum, complimenti per il lavoro che avete fatto e continuate a fare.
Solo da qualche giorno mi sto cimentando nello sviluppo di applicazioni android, in particolare mi interessa realizzare una semplice app che ritorni la posizione del dispositivo tramite gps. Sono abbastanza ferrato sulla programmazione Java, ma, sicuramente per colpa della mia inesperienza, non sono riuscito a comprendere/far funzionare i vari frammenti di codice, simili al mio problema, che ho letto sul web e su questo forum. Per questo vi chiedo se è possibile avere un piccolo tutorial su come utilizzare le API2 di google per la localizzazione, mi basta anche un semplice (purchè efficiente) codice, da usare come base di partenza, che restituisca latitudine e longitudine dopo il click di un bottone.
Grazie in anticipo a tutti quelli che risponderanno.

Offline kalacta269

  • Utente normale
  • ***
  • Post: 152
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Asus Transformer pad tf300
  • Sistema operativo:
    windows7
Re:Localizzazione tramite GPS
« Risposta #1 il: 14 Ottobre 2013, 13:04:01 CEST »
0
io quando ho provato a fare qualcosina giusto per vedere di cosa trattava l'argomento mi sono letto questo tutorial credo che per iniziare vada bene

Tutorial Pratici | devAPP

Offline mc92

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7
Re:Localizzazione tramite GPS
« Risposta #2 il: 14 Ottobre 2013, 14:54:09 CEST »
0
Innanzitutto grazie per la risposta, il tutorial che mi hai suggerito si riferisce all'uso delle mappe, in realtà a me basta ottenere informazioni dal gps quali latitudine e longitudine, guardando nelle api ho visto che queste informazioni posso essere ottenute dalle classi "Location"

Offline kalacta269

  • Utente normale
  • ***
  • Post: 152
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Asus Transformer pad tf300
  • Sistema operativo:
    windows7
Re:Localizzazione tramite GPS
« Risposta #3 il: 14 Ottobre 2013, 15:06:13 CEST »
0
mmm hai ragione ho fatto confusione con un altro link ecco quello che di cui hai bisogno

Android Tutorial : Android get current GPS location

Offline mc92

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7
Re:Localizzazione tramite GPS
« Risposta #4 il: 15 Ottobre 2013, 12:32:37 CEST »
0
Il tutorial è stato molto utile. Ho visto che la classe GPSTracker ottiene la location tramite il metodo "getLastKnownLocation()", mi chiedo se questo è il metodo più efficace per ottenere la posizione o se magari si può fare qualcosa in più in termini di precisione e/o velocità di risposta da parte del gps.

Offline Gc24

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-I9300
  • Sistema operativo:
    Windows 7
Re:Localizzazione tramite GPS
« Risposta #5 il: 16 Ottobre 2013, 01:51:48 CEST »
0
Il tutorial è stato molto utile. Ho visto che la classe GPSTracker ottiene la location tramite il metodo "getLastKnownLocation()", mi chiedo se questo è il metodo più efficace per ottenere la posizione o se magari si può fare qualcosa in più in termini di precisione e/o velocità di risposta da parte del gps.

se fai caso al codice di quella classe, più in particolare:
Codice: [Seleziona]
if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                // if GPS Enabled get lat/long using GPS Services
                if (isGPSEnabled) {
                    if (location == null) {      [color=red]<-------------------------------------------------------occhio qui[/color]
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }

i dati sulla posizione vengono presi prima da una connessione internet (se presente), se questa fornisce una location valida, il codice che riceve da gps non viene eseguito.
se vuoi giocare un po' sul gps puro, togli quel controllo che ho segnato, e cambia il valore delle variabili MIN_TIME_BW_UPDATES e  MIN_DISTANCE_CHANGE_FOR_UPDATES!
(millisecondi e metri)

PS: non ti aspettare una posizione precisa subito, serve tempo per ottenere dati da gps sempre più precisi, testala all'aria aperta!:D

Offline mc92

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7
Re:Localizzazione tramite GPS
« Risposta #6 il: 17 Ottobre 2013, 12:21:23 CEST »
0
Grazie dell'aiuto, l'app testata dà risultati accettabili.