Autore Topic: Centrare mappa su posizione attuale  (Letto 2768 volte)

Offline TheGianLu

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7 PRO x64
Centrare mappa su posizione attuale
« il: 12 Luglio 2011, 09:32:08 CEST »
0
Ciao a tutti!
Come da oggetto vorrei sviluppare un modo per cui, cliccando su un tasto nella mappa, in automatico questa si posiziona sulla posizione attuale (es. ho la mappa posizionata su New York, clicco sul tasto e la visuale si sposta a dove mi trovo adesso). In pratica vorrei associare al tasto la funzione centerMap citata nel libro di Massimo Carli, dove però il GeoPoint è costruito in maniera dinamica e non statica.
Ho seguito il bel tutorial presente sul sito, ma non riesco assolutamente a risolvere questo problema perchè o l'applicazione crasha oppure mi segna delle coordinate completamente sballate rispetto a quelle che forzo da emulatore via DDMS.

Grazie a tutti per eventuali aiuti o consigli.  ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Centrare mappa su posizione attuale
« Risposta #1 il: 12 Luglio 2011, 10:01:17 CEST »
0
Ciao a tutti!
Come da oggetto vorrei sviluppare un modo per cui, cliccando su un tasto nella mappa, in automatico questa si posiziona sulla posizione attuale (es. ho la mappa posizionata su New York, clicco sul tasto e la visuale si sposta a dove mi trovo adesso). In pratica vorrei associare al tasto la funzione centerMap citata nel libro di Massimo Carli, dove però il GeoPoint è costruito in maniera dinamica e non statica.
Ho seguito il bel tutorial presente sul sito, ma non riesco assolutamente a risolvere questo problema perchè o l'applicazione crasha oppure mi segna delle coordinate completamente sballate rispetto a quelle che forzo da emulatore via DDMS.

Grazie a tutti per eventuali aiuti o consigli.  ;-)

Il metodo setCenter è quello che fa al caso tuo.
Visto che però ottieni un errore devi postare il codice che hai scritto e il logcat dell'errore che ottieni.

Offline TheGianLu

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7 PRO x64
Re:Centrare mappa su posizione attuale
« Risposta #2 il: 12 Luglio 2011, 10:55:37 CEST »
0
Allora: il codice base l'ho preso dal tutorial di JD. La funzione che voglio implementare invece è (il Button è il pulsante messo nell'xml che una volta premuto dovrebbe centrarmi la visuale nella posizine attuale):
Codice (Java): [Seleziona]
public void centerMap(View Button){
                        Double Lat = ( location.getLatitude() )*1E6;
                        Double Lon = ( location.getLongitude() )*1E6;
                        int lat = Lat.intValue();
                        int lon = Lon.intValue();
                        GeoPoint point = new GeoPoint(lat, lon);
                        mapController.animateTo(point);
                 }

Il log dell'errore, invece, è:
Codice: [Seleziona]
07-12 08:45:39.955: ERROR/AndroidRuntime(515): FATAL EXCEPTION: main
07-12 08:45:39.955: ERROR/AndroidRuntime(515): java.lang.IllegalStateException: Could not find a method centerMap(View) in the activity class it.prova.tesi.Map for onClick handler on view class android.widget.Button with id 'centerMapButton'
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.view.View$1.onClick(View.java:2131)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.view.View.performClick(View.java:2485)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.view.View$PerformClick.run(View.java:9080)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.os.Handler.handleCallback(Handler.java:587)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.os.Looper.loop(Looper.java:130)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.app.ActivityThread.main(ActivityThread.java:3683)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at java.lang.reflect.Method.invokeNative(Native Method)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at java.lang.reflect.Method.invoke(Method.java:507)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at dalvik.system.NativeStart.main(Native Method)
07-12 08:45:39.955: ERROR/AndroidRuntime(515): Caused by: java.lang.NoSuchMethodException: centerMap
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at java.lang.ClassCache.findMethodByName(ClassCache.java:247)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at java.lang.Class.getMethod(Class.java:962)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     at android.view.View$1.onClick(View.java:2124)
07-12 08:45:39.955: ERROR/AndroidRuntime(515):     ... 11 more

Inserendo staticamente le coordinate il codice funziona, quindi credo che sbaglio io qualcosa nel passarle, ma non capisco proprio cosa.  :'(

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Centrare mappa su posizione attuale
« Risposta #3 il: 12 Luglio 2011, 12:35:43 CEST »
0
E qual'è l'xml corrispondente? L'errore mi sembra abbastanza comprensibile: non trova quel metodo!

Offline TheGianLu

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7 PRO x64
Re:Centrare mappa su posizione attuale
« Risposta #4 il: 12 Luglio 2011, 16:40:39 CEST »
0
Il contenuto di map.xml è:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
       
        <com.google.android.maps.MapView
                android:id="@+id/mapView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:apiKey="myApiKey" />
               
        <RelativeLayout
                android:id="@+id/buttonLayout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
               
                <Button
                        android:id="@+id/centerMapButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Find me"
                        android:layout_gravity="right"
                        android:layout_alignParentRight="true"
                        android:onClick="centerMap">
                </Button>
                       
        </RelativeLayout>
       
</merge>

Quando setto i due valori di latitudine e longitudine manualmente (come, ad esempio, 45066667,11783333) funziona e parte l'animazione verso il punto inserito quindi mi sembra strano che non trovi il metodo.

Grazie mille per l'aiuto, Ricky!  ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Centrare mappa su posizione attuale
« Risposta #5 il: 12 Luglio 2011, 23:06:12 CEST »
0
prova senza: *1E6
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline TheGianLu

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7 PRO x64
Re:Centrare mappa su posizione attuale
« Risposta #6 il: 14 Luglio 2011, 16:34:04 CEST »
0
Non funziona neanche senza...  :'(

Offline cha

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
Re:Centrare mappa su posizione attuale
« Risposta #7 il: 19 Luglio 2011, 18:15:19 CEST »
0
hai provato a dare le coordinate da linea di comando? (telnet e poi geo fix) Mi diceva un mio amico di aver riscontrato dei problemi con l'uso del DDMS...giusto per fare una prova eh  :-) :-)