Autore Topic: Come visualizzare longitudine e latitudine  (Letto 2828 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Come visualizzare longitudine e latitudine
« il: 24 Settembre 2010, 12:45:20 CEST »
0
Vorrei visualizzare la latitudie e longitudine a video, ma non me li mostra
Uso il seguente codice, il problema è che tvLatitudine e tvLongitudine no nvengono valorizzati
Mi sorge un dubbio, visto che è implementato il metodo onLocationChanged non è che vengono valorizzati solo se sposto il cellulare?
Se quando lancio la mia app sono fermo come faccio a ottenere i valori??

Codice (Java): [Seleziona]
public class MyGPS extends Activity {
        TextView tvLatitudine = null;
        TextView tvLongitudine = null;
        LocationManager locationManager = null;
       
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                final TextView textView = (TextView) findViewById(R.id.main_text_view_2);
                textView.setText("GPS");


                tvLatitudine = (TextView)this.findViewById(R.id.main_text_view_3);
                tvLongitudine = (TextView)this.findViewById(R.id.main_text_view_4);
       
                // Otteniamo il riferimento al LocationManager
                locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

                // Verifichiamo se il GPS è abilitato altrimenti avvisiamo l'utente
                if(!locationManager.isProviderEnabled("gps")){
                        Toast.makeText(this, "GPS è attualmente disabilitato. E' possibile abilitarlo dal menu impostazioni.", Toast.LENGTH_LONG).show();
        }



        // Registriamo il LocationListener al provider GPS
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);


        }
       
         LocationListener locationListener = new LocationListener() {
         @Override
         public void onLocationChanged(Location location) {


                 // Aggiorna la location
                 Double geoLat = location.getLatitude()*1E6;
                 Double geoLng = location.getLongitude()*1E6;
               
                 tvLatitudine.setText(Double.toString(getRound(location.getLatitude(), 5)));
                 tvLongitudine.setText(Double.toString(getRound(location.getLongitude(), 5)));
                 }

                @Override
                public void onProviderDisabled(String provider) {
                        // TODO Auto-generated method stub
                       
                }

                @Override
                public void onProviderEnabled(String provider) {
                        // TODO Auto-generated method stub
                       
                }

                @Override
                public void onStatusChanged(String provider, int status, Bundle extras) {
                        // TODO Auto-generated method stub
                       
                }

               

 };
 public static double getRound(double x, int digits){
     double powerOfTen = Math.pow(10, digits);
     return ((double)Math.round(x * powerOfTen) / powerOfTen);
}
 @Override
 public void onPause() {
         super.onPause();
         // Stoppa Listener delle posizioni
         if(locationManager != null){
                 locationManager.removeUpdates(locationListener);
                 
         }
 }

 @Override
 protected void onResume() {
         super.onResume();
         // Registriamo il LocationListener al provider GPS
         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
       
 }
 


}

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come visualizzare longitudine e latitudine
« Risposta #1 il: 24 Settembre 2010, 18:06:45 CEST »
0
Potete eliminare questo topic, il codice funziona, bisogna aspettare un pò di secondi per vedere i valori sul video

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come visualizzare longitudine e latitudine
« Risposta #2 il: 24 Settembre 2010, 18:09:44 CEST »
0
Eh sì, devi attendere il fix :D

Sto lavorando ad una modifica del tutorial su GPS e MapView che risolve questo problema, puoi iniziare a sbirciare il codice a questo indirizzo:
MainActivity.java -
 anddevit-tutorials -
 
 Project Hosting on Google Code
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come visualizzare longitudine e latitudine
« Risposta #3 il: 25 Settembre 2010, 19:15:41 CEST »
0
JD non ho mica capito a che fix stai lavorando

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come visualizzare longitudine e latitudine
« Risposta #4 il: 25 Settembre 2010, 19:17:49 CEST »
0
Utilizzo due listener: llCoarse e llFine. Il primo serve solo a fare la prima acquisizione sfruttando la localizzazione tramite Network, che se funziona è istantanea, il secondo è il classico listener del GPS che ci mette un botto a fixare.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:Come visualizzare longitudine e latitudine
« Risposta #5 il: 22 Ottobre 2010, 00:49:56 CEST »
0
Ciao Ragazzi, questo post fa giusto al caso mio.    :-P

Vi devo chiedere una cosa:

Sto cercando di catturare le coordinate GPS quando si preme un bottone e notificare all'utente, quando la sua posizione cambia notificare le nuove coordinate.

Ho scritto questo codice, pensate vada bene?

Il problema è che le coordinate correnti non me li stampa, ma quando cambia si.

Ecco il codice

Codice: [Seleziona]

//Questa classe si chiama MyClass...

posGps.setOnClickListener(new OnClickListener() {

                                @Override
                                public void onClick(View v) {
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                                                        MyLocationListener listener = new MyLocationListener(Myclass.this);
                                                        manager.requestLocationUpdates(manager.NETWORK_PROVIDER,
                                                                        0, 10.0f, listener);

                                                        showToast("La tua posizione è\n"+"Latitudine: "+latitude+"\n"+"Longitudine: "+longitude);
});
}
private class MyLocationListener implements LocationListener {
                private Myclass class;
               
                public MyLocationListener(MyClass um){
                        this.class=um;
                }

                public void onLocationChanged(Location location) {
                        // TODO Auto-generated method stub
                        try {
                                if (location != null) {
                                       
//                                        String posizione = "La tua posizione attuale è:" + "Lat.:"
//                                                        + location.getLatitude() + "\n" + "Long.:"
//                                                        + location.getLongitude();
//                                       
                                        us.setLatitude(String.valueOf(location.getLatitude()));
                                        us.setLongitude(String.valueOf(location.getLongitude()));
                                       
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                        }

                }

                public void onProviderDisabled(String provider) {
                        manager.requestLocationUpdates(manager.GPS_PROVIDER,
                                        0, 10.0f, this);
                }

                public void onProviderEnabled(String provider) {
                        // TODO Auto-generated method stub
                }

                public void onStatusChanged(String provider, int status, Bundle extras) {
                        // TODO Auto-generated method stub
                }
               
        }



Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Come visualizzare longitudine e latitudine
« Risposta #6 il: 10 Luglio 2011, 21:01:25 CEST »
0
Potete eliminare questo topic, il codice funziona, bisogna aspettare un pò di secondi per vedere i valori sul video

Scusate se riesumo questo topic :)

Da qualche ora sto impazzando col GPS: cerco soltanto di recuperare latitudine e longitudine ma sembra non funzionare in alcun modo. Ho provato persino il codice del primo post (quello di andream1977) ma nulla. Il problema è che la variabile location è sempre null (e quindi niente coordinate....) per quanto a lungo aspetti....il LogCat non dà errori di alcun tipo, e riesco a farmi toastare lo stato acceso/spento del GPS.

Poi non so perchè, ho cambiato questa riga:

Codice (Java): [Seleziona]
 // Registriamo il LocationListener al provider GPS
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

in questo modo:

Codice (Java): [Seleziona]
// Registriamo il LocationListener al provider GPS
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);


E tutto funge O_O. Almeno, le due TextView vengono valorizzate con latitudine e longitudine.
E sinceramente non mi spiego perchè...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come visualizzare longitudine e latitudine
« Risposta #7 il: 10 Luglio 2011, 21:30:39 CEST »
0
E sinceramente non mi spiego perchè...

Stai lavorando sul device o sull'emulatore? Sei certo che il gps abbia ottenuto la posizione?

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Come visualizzare longitudine e latitudine
« Risposta #8 il: 10 Luglio 2011, 21:35:08 CEST »
0
Ciao,
sto testando su un device fisico (un LG P500).
Non so come fare ad essere "certo che il gps abbia rilevato la posizione", oltre ad aspettare ad oltranza...dopo 10 minuti ho supposto che l'esperimento fosse fallito.
Invece dal network funziona tutto a meraviglia....

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come visualizzare longitudine e latitudine
« Risposta #9 il: 10 Luglio 2011, 21:47:23 CEST »
0
Ciao,
sto testando su un device fisico (un LG P500).
Non so come fare ad essere "certo che il gps abbia rilevato la posizione", oltre ad aspettare ad oltranza...dopo 10 minuti ho supposto che l'esperimento fosse fallito.
Invece dal network funziona tutto a meraviglia....

Per verificare lo stato del gps (coordinate, numero di satelliti & co.) scarica dal market l'applicazione "Stato GPS": http://bit.ly/odcsYQ

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Come visualizzare longitudine e latitudine
« Risposta #10 il: 10 Luglio 2011, 21:52:23 CEST »
0
Grazie mille,
installo subito :)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come visualizzare longitudine e latitudine
« Risposta #11 il: 10 Luglio 2011, 23:32:53 CEST »
0
Grazie mille,
installo subito :)

Facci sapere :)

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Come visualizzare longitudine e latitudine
« Risposta #12 il: 10 Luglio 2011, 23:37:16 CEST »
0
Allora,
l'applicazione che mi hai indicato dopo qualche minuto (pensavo ci mettesse meno!) ha beccato 5/5 satelliti.

A quel punto ho fatto partire la mia Activity e...nada. La location è sempre null T__T

In realtà al momento mi interessava recuperare latitudine e longitudine e allacciandomi al network funge, però adesso è una questione di principio :P anche perchè il passo successivo sarebbe stato l'uso delle MapView, e se non riesco ad usare il gps per una cosa così basilare me le scordo! ç__ç

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come visualizzare longitudine e latitudine
« Risposta #13 il: 10 Luglio 2011, 23:41:53 CEST »
0
l'applicazione che mi hai indicato dopo qualche minuto (pensavo ci mettesse meno!) ha beccato 5/5 satelliti.

Non basta che prende i satelliti, deve anche farti vedere le coordinate! :)

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Come visualizzare longitudine e latitudine
« Risposta #14 il: 10 Luglio 2011, 23:46:46 CEST »
0
Ehm, si scusa mi sono espresso male :P
L'app del market ci mette un pò, ma mostra tutto coordinate comprese (per intenderci, quando la progress scompare e compaiono io dati refreshati sulla parte inferiore dello schermo).
La mia invece nada -__-