Autore Topic: aggiornamento location  (Letto 1031 volte)

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
aggiornamento location
« il: 25 Maggio 2011, 12:27:21 CEST »
0
Ciao a tutti,

Con il seguente codice

Codice: [Seleziona]
        public void onLocationChanged(Location location) {
                List<Overlay> overlays = mv.getOverlays();
                //List overlays = mv.getOverlays();
                overlay = new MyLocationOverlay(this, mv);
                overlays.add(overlay);
                overlay.enableMyLocation();
               
               
                String latLongString;
                TextView myLocationText;
                myLocationText = (TextView)findViewById(R.id.myLocationText);
               
                String addressString = "No address found";
               
                if (location != null) {
                        double lat = location.getLatitude();
                        double lng = location.getLongitude();
               
                        latLongString = "Lat:" + lat + "\nLong:" + lng;
                       
                        double latitude = location.getLatitude();
                        double longitude = location.getLongitude();
                       
                        Geocoder gc = new Geocoder(this, Locale.getDefault());
                        try {
                                List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
                                StringBuilder sb = new StringBuilder();
                                if (addresses.size() > 0) {
                                                Address address = addresses.get(0);
                                                for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
                                                        sb.append(address.getAddressLine(i)).append("\n");
                                                       
                                                sb.append(address.getLocality()).append("\n");
                                                sb.append(address.getPostalCode()).append("\n");
                                                sb.append(address.getCountryName());
                                }
                                addressString = sb.toString();
                        } catch (IOException e) {}
                } else {
                        latLongString = "No location found";
                }
                myLocationText.setText("Your Current Position is:\n" + latLongString + "\n" + addressString);
               
        }

quando con l'emulatore GPS spedisco le coordinate ho un errore alla riga

Codice: [Seleziona]
myLocationText.setText("Your Current Position is:\n" + latLongString + "\n" + addressString);

Qualche vaga idea?

r

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:aggiornamento location
« Risposta #1 il: 25 Maggio 2011, 12:57:23 CEST »
0

quando con l'emulatore GPS spedisco le coordinate ho un errore alla riga

Codice: [Seleziona]
myLocationText.setText("Your Current Position is:\n" + latLongString + "\n" + addressString);

Qualche vaga idea?

logcat?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:aggiornamento location
« Risposta #2 il: 25 Maggio 2011, 15:17:46 CEST »
0
Ciao bradipao,

Ho capito il logcat e' come la bibbia...eccoti:



Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:aggiornamento location
« Risposta #3 il: 25 Maggio 2011, 15:22:29 CEST »
0
Come dice il logcat, sicuramente in quel momento myLocationText è a null... controlla il layout.

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:aggiornamento location
« Risposta #4 il: 25 Maggio 2011, 15:46:07 CEST »
0
Mah,

Il layout mi fa vedere la string di default, quindi forse non gli arriva "myLocationText" per qualche motivo.

Pero' non capisco...

Metto le coordinate di Roma (o almeno con google maps son quelle long:41.9038 lat:12.4724) ma come output mi dice che sono in etiopia.



Forse devo moltiplicarlo per 1E16 ma pensavo getLatitude() facesse gia' il tutto.

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:aggiornamento location
« Risposta #5 il: 25 Maggio 2011, 16:19:06 CEST »
0
Ok qui sto dormendo...nel senso che erano alternati.

Il lat e long e' un problema risolto.

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:aggiornamento location
« Risposta #6 il: 25 Maggio 2011, 17:25:56 CEST »
0
Ok penso di aver capito il problema

Codice: [Seleziona]
TextView myLocationText = (TextView) this.findViewById(R.id.myLocationText);

e il content view e'

Codice: [Seleziona]
setContentView(R.layout.map);

pero' quello che voglio e' cercare di settare myLocationText per un altro content view
Codice: [Seleziona]
setContentView(R.layout.hit);

Pero' ancora non so come risolverlo.

r

ps = Ecco perche' il pointer era null.

Offline racoonlab

  • Utente junior
  • **
  • Post: 98
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:aggiornamento location
« Risposta #7 il: 25 Maggio 2011, 18:39:53 CEST »
0
Ok il pointer era nullo e ora ho risolto la cosa facendo un inflate in questo modo:

View inflatedView = View.inflate(this, R.layout.hit, null);
TextView myLocationText = (TextView) inflatedView.findViewById(R.id.myLocationText);

Il pointer l'ho risolto quindi il post lo chiudo.