Cerca con Google

Translate

20 giugno 2011

Tutorial 13 - Usare Google Maps e Google Navigator con App Inventor


Una delle cose più belle ed utili di uno smartphone Android è sicuramente l'applicazione Google Maps (compreso Google Navigator) che, in forma totalmente gratuita, ci offre uno strumento unico per districarci tra le strade e le vie della nostra bella Italia (ma non solo visto che la copertura di Google Maps è oramai a livello mondiale).

Perchè allora non sfruttare una delle migliori applicazioni preinstallate sul nostro Android anche con App Inventor?

Potremmo così ampliare le funzionalità delle nostre app includendo funzioni quali la visualizzazione di un indirizzo sulla mappa o addirittura la navigazione turn-by-turn con tanto di sintesi vocale in italiano fino a destinazione!


Vediamo oggi in questo tutorial quali sono i blocchi da utilizzare per "integrare" le funzioni di Google Maps e Goole Navigator in App Inventor, il blocco principale che utilizzeremo sarà ancora una volta l'activitystarter, seguite fino in fondo il video per maggiori dettagli:


Vi riporto ora per comodità i valori inseriti nel video per quel che riguarda i campi

Action
ActivityClass
ActivityPackage
DataUri
dell'activitystarter utilizzato

Per questo tutorial, i valori di Action a Activitypackage sono fissi e pari a:

Action = android.intent.action.VIEW
ActivityPackage = com.google.android.apps.maps

Per aprire Google Maps ad un indirizzo qualunque:
ActivityClass = com.google.android.maps.MapsActivity
DataUri = geo:0,0?q=
(dopo la q va messo l'indirizzo o il posto da cercare)

Per aprire Google Navigator ed iniziare la navigazione verso l'indirizzo indicato:
ActivityClass = com.google.android.maps.driveabout.app.NavigationActivity
DataUri = google.navigation:///?q=
(dopo la q va messo l'indirizzo o il posto da cercare)

Per aprire Google Maps in modalità StreetView
ActivityClass = com.google.android.maps.MapsActivity
DataUri = (la stringa per l'indirizzo va presa come spiego nel video...)

Per qualunque domanda o commento scrivete pure utilizzando i commenti del blog!

Il file sorgente del tutorial mappe è disponibile qui: Tutorial Maps

108 commenti:

  1. Ciao ho provato a fare una piccola app con queste istruzioni, ma non riesco a far aprire la mappa in nessun modo.
    ho settato come
    Action android.intent.action.VIEW
    ActivePackage com.google.android.app.maps
    ActivitiClass com.google.android.maps.MapsActivity
    DataUri geo:0,0?=Roma

    e nemmeno cosi riesco ad aprire la mappa per visualizzare Roma

    RispondiElimina
  2. Ho caricato il file .zip del progetto App Inventor, prova a scaricarlo ed utilizzare quello.
    Se non dovesse ancora andare forse c'è qualche problema nell'installazione di Gmaps nel tuo telefono (o stai usando l'emulatore? in tal caso non credo che sia preinstallato gmaps...)

    RispondiElimina
  3. Ciao ho scaricato il file e in effetti non funziona , ho provato a scaricare la app , dal tutoria ufficiale di appinventor , quella MapTour e quella funziona, puoi aiutarmi ?

    RispondiElimina
  4. Se ti funziona il tutorial MapTour, prova a fare una copia di quello e modificarlo con i blocchi del mio tutorial.
    Mi sembra strano non funzioni se non hai fatto errori di digitazione.
    Mi puoi dire il modello di telefono? se ancora non va dovresti prendere i log (con logcat) se sai come si fa, da li si vede di solito il perchè l'activitystarter non è partito

    RispondiElimina
  5. Il telefono che sto usando è un Horus della 4geek, ho provato ma l'errore mo lo da anche con l'emulatore, non so come funziona logcat, ma adesso cerco e vede come posso fare, ho fatto riportare in altre label i valori impostati e sono tutti corretti. In effetti la cosa mi sembra strana visto che non gli sto facendo fare molto, riesco a inviare email, ad aprire pagine WEB dal tasto, ma questo non mi viene.

    RispondiElimina
  6. ecco il risultato
    E/Form (17555): Form Screen1 ErrorOccurred, errorNumber = 601, componentType
    = ActivityStarter, functionName = StartActivity, messages = No corresponding act
    ivity was found.
    I/ActivityManager( 158): Starting activity: Intent { act=android.intent.action.
    VIEW dat=geo:0,0?q=riva del garda cmp=com.google.android.app.maps/com.google.and
    roid.maps.MapsActivity }
    D/Form (17555): Form Screen1 got onPause
    D/Form (17555): Form Screen1 got onActivityResult, requestCode = 2, resultCod
    e = 0
    I/ActivityStarter(17555): resultReturned - resultCode = 0
    D/Form (17555): Form Screen1 got onResume
    W/dalvikvm(18572): threadid=1: thread exiting with uncaught exception (group=0x2

    RispondiElimina
  7. sembra che non trovi l'app per le mappe sul tuo telefono,vuoi mandarmi per mail il sorgente che hai fatto e vedo se sul mio tel va?
    che versione di google maps hai installata nel telefono?

    RispondiElimina
  8. Trovato l'errore!
    ho scritto: ActivityPackage = com.google.android.app.maps

    invece bisogna mettere:
    ActivityPackage = com.google.android.apps.maps

    (quindi è 'apps' e non 'app')
    Ora correggo anche il post! grazie per avermi fatto notare l'errore!

    RispondiElimina
  9. Perfetto ora funziona tutto ... sono contento ora posso continuare con la mia app ..

    RispondiElimina
  10. Ciao, intanto complimenti per il post davvero interessante..hai un nuovo fan :)
    Ho provato a creare l'app, la parte street view e mappa funzionano perfettamente, mentre quella naviga no.
    Mi appare il messaggio di text del notifier ma non carica il navigatore. cosa potrebbe essere?

    RispondiElimina
  11. Prova a leggere tutti i commenti ed il problema che ha avuto Andrea, forse è solo un errore di digitazione, prova a scaricare il mio sorgente e vedere se con quello funziona,
    se ancora non va, prendi i log (logcat) e me li invii così ci guardo...non usi l'emulatore vero??

    RispondiElimina
  12. Ciao! intanto complimentoni!
    Non ho mai prog x android e questa è la prima app.
    Avrei bisogno di sapere se posso importare in una app le mappe dei loghi che ho in google maps, ho provato a fare un app come indicato nel tutorial di Map Tour in app inventor http://appinventor.googlelabs.com/learn/tutorials/maptour/maptour2.html
    sostituendo i link alle mappe che mettono loro con i miei ma sembra non riesca a collegarsi a internet...è la procedura corretta?

    RispondiElimina
  13. purtroppo Marco che io sappia non è possibile aggiungere dei loghi o altri simboli alle mappe che visualizziamo in App Inventor,cmq prova prima a creare un app che visualizzi una mappa generica (e verifica che sia funzionante) poi metti il link alla tua mappa e prova a verificare (così escludi che siano problemi di connessione a internet della tua app)

    RispondiElimina
  14. Ciao! Complimenti davvero per i tuoi tutorial! Li trovo davvero interessanti. Vorrei chiederti se è possibile realizzare un'app che attraverso il locator sensor mi sa dire qual'è la sede(mettiamo il caso siano degli uffici di cui conosco gli indirizzi) più vicina a me in quel momento.
    Ho visto che il locator ti restituisce la latitudine e la longitudine attuali e avevo pensato ad una procedura che calcoli la distanza tra la mia posizione attuale e le posizioni di ciascuna sede(sempre tramite latitudine e longitudine) e mi restituisca la sede con minor distanza. Dopodichè si può avviare googleMaps settandogli l'indirizzo di quella sede. Pensi che sia corretto? Grazie

    RispondiElimina
  15. Ciao Marco, certo è proprio come dici tu, se sai le coordinate della destinazione puoi eseguire dei calcoli matematici e calcolarne la distanza in linea d'aria.
    Poi li puoi ordinare in base a questa distanza.
    Il più è trovare le formule matematiche corrette (immagino che in internet ci siano vari esempi) ed implementarle in AI (non dovrebbe essere difficile visto che ci sono parecchie funzioni matematiche e trigonometriche) in bocca al lupo!

    RispondiElimina
  16. ma come si accede ad APP inventor!! mi sono loggato.. ma non trovo il link per accedere all'applicazione? devo installare qualcosa?

    RispondiElimina
  17. purtroppo attualmente App Inventor non risiede più nei server Google e quindi col vecchio indirizzo (quello che si vede anche nei miei tutorial) non è più utilizzabile.
    Leggi il mio post più recente sul blog per far richiesta di diventare beta tester sul nuovo App Inventor ospitato dal MIT.
    Speriamo tutti che nel giro di poche settimane venga reso pubblico il nuovo server del MIT per App Inventor, un pò di pazienza ancora... :)

    RispondiElimina
  18. Ciao Sebastiano, vorrei sapere su questa applicazione, come posso mettere dei preferiti all'interno della mappa. cioè con un unico tasto aprire la maps e avere all'interno già delle locazioni preferite.scusami se oso chiederti qualcosa dato che per me sei un guru e saperti amico con google + è secondo me un evento unico.grazie anticipatamente

    RispondiElimina
    Risposte
    1. non è possibile farlo, in quanto quando apriamo con un activitystarter la mappa possiamo solo aprire una mappa generica.
      Per fare una cosa simile a quella che chiedi bisogna usare un'altra strada, prima da pc crei la tua mappa coi tuoi punti di interesse poi hai presente il bottone col link a tale mappa (del tipo http://....)
      ecco, quel link lo puoi mettere in una webview di App Inventor, in tal modo l'utente della tua app visualizzerà la stessa mappa con tutti i punti di interesse da te inseriti precedentemente. Spero di essere stato abbastanza chiaro! in bocca al lupo!

      Elimina
    2. Questo commento è stato eliminato dall'autore.

      Elimina
    3. Ciao, ma in questo caso (cioè io ho creato una mappa con dei punti d'interesse aggiunti da me tramite le fusion tables, l'ho caricata in una pagina web, perchè modificando l'html ho tolto tutti i POI che non sono miei, e la chiamo con una webview). Secondo te si riesce a far comparire in quella webview la posizione di chi sta usando l'app?

      Elimina
  19. Ciao seb ho appena finito il tuo tut (bello e semplice) volevo chiederti se fosse possibile salvare una cronologia delle vie ricercate con il navigatore......
    grazie ancora ale

    RispondiElimina
    Risposte
    1. puoi usare un tinyDB per salvare la textbox usata dall'utente per la ricerca in google maps

      Elimina
  20. Buongiorno a tutti, io ho un problema diverso.... Ho creato una app multiscreen. In alcuni schermi c'e' il bottone per aprire googlemaps e funziona, in altri (che ho creato negli ultimi giorni) mi dà errore 601... Ho controllato e ricontrollato mille volte, è tutto giusto, le istruzioni sono uguali sia dove funziona sia dove non funziona.
    Avete qualche idea in merito ?

    RispondiElimina
  21. Ciaom innanzitutto, grazie per i tuoi utilissimi tutorial che mi stanno aiutando parecchio ad imparare qualcosa su App Inventor, volevo chiederti una cosa, ho preparato un'applicazione che mi gestisce un Tracker GPS montato sulla mia macchina, ho già creato l'interfaccia, che mi invia i vari SMS per comunicare col Tracker, ed ho impostato tutte le condizioni che all'arrivo di un SMS lo esaminano e in base al testo eseguono determinate azioni, principalmente il Tracker invia un SMS son le coordinate GPS, sono riuscito ad estrarle dall'SMS e a separare in due variabili Latitudine e Longitudine, il problema è che quando cerco di visualizzare la posizione con google maps, mi mostra la posizione della strada più vicina anzichè la posizione esatta delle coordinate, non c'è modo di visualizzare il classico puntatore verde che si vede su google maps?
    Al momento sto utilizzando: geo:0,0?q=Latitudine,Longitudine
    Ho notato che se uso: geo:Latitudine,Longitudine la mappa viene puntata nel punto giusto ma non mi crea nessun marker, come posso risolvere?
    Un'altra domanda e non ti stresso + :D, è possibile eliminare la suoneria degli SMS e segnare gli SMS come già letti, se questi sono in arrivo da un determinato numero? Un po come fa l'applicazione "404" che c'è sul play store.

    Grazie in anticipo, buon weekend!

    RispondiElimina
  22. per quanto riguarda i marker dovresti vedere nella documentazione di google maps come si possono posizionare nel punto preciso,se cerchi google maps url help o api qualcosa dovrebbe uscire.
    Non è possibile eliminare la suoneria degli sms o segnarli come già letti perchè AI non ha i permessi necessari,forse con un activitystarter e usando qualche programma di terze parti potrebbe essere fattibile, ma ci credo poco purtroppo...

    RispondiElimina
    Risposte
    1. Ciao Sebastiano, per il marker ho risolto così: http://maps.google.com/?q=Macchina@latitudine,longitudine

      per mantenere l'app in background invece? o magari farla partire all'avvio? hai qualche idea?
      Ciao e Grazie!!

      Elimina
    2. dove macchina è il nome del marker, ho trovato online un elenco di activity, se ti interessa te lo passo.

      Elimina
    3. ottimo Pietro! certo posta pure il link da dove hai trovato queste utili informazioni,

      per le app in background per il momento non c'è soluzione, puravidaapp a questa pagina
      http://code.google.com/p/android-scripting/
      ha però creato con un activitystarter un app che non manda mai in standby il display del telefono, certo è un'altra cosa perchè se torni alla home l'app di AI comunque si ferma...
      aspettiamo una soluzione da parte del team del MIT (se mai implementeranno questa cosa ma non credo sia nelle loro priorità)

      Elimina
    4. http://www.mediafire.com/view/?tb6dwvcaaslhxvt

      Guardati anche questo, sembra interessante http://www.tair.info/

      Elimina
    5. Grazie Pietro! molto interessante
      ps: tair.info lo conoscevo già, ho preso spesso spunto da loro per i miei tutorial

      Elimina
  23. Salve a tutti, volevo sapere se è possibile, partendo da un file csv, ov2 o klm (il formato non è un problema) con al suo interno una serie di dati, longitudine e latitudine, creare una applicazione che segnali la presenza di uno di questi punti dell'elenco, faccio un esempio:

    LONGITUDINE LATITUDINE N° VARCO
    09.17842 45.45310 Varco28
    09.18030 45.45313 Varco27
    09.17614 45.45420 Varco29
    09.17384 45.45608 Varco30
    09.17113 45.45749 Varco31

    Sono alcuni dei varchi di AreaC di Milano, quello che intendo è che se sto viaggiando e incontro uno di questi punti l'app mi dovrebbe avvisare, acusticamente visivamente è un problema secondario, sarebbe possibile? Grazie e spero di essermi espresso bene, saluti a tutti.

    RispondiElimina
    Risposte
    1. Ciao, non è semplicissimo ma è fattibile
      per prima cosa devi importare i tuoi dati long/lat nella tua app, puoi usare magari un foglio spreadsheet su google drive per facilitarti le cose (guarda ad esempio il tutorial per l'import di dati da tabella html)
      Poi il componente locationsensor ti ritorna i valori attuali di long/lat,
      li dovrai confrontare matematicamente con quelli delle tue coordinate dei varchi e se sono più o meno simili (perchè magari vuoi avvisare nelle vicinanze del varco e non proprio solo in quel punto)
      fai partire un allarme sonoro o visivo,
      certo c'è da lavorarci sopra un bel pò ma gli strumenti in app inventor per fare una cosa del genere ci sono, buon lavoro!

      Elimina
    2. Grazie Seba, vedrò di smanettare e se e quando avrò risultati te lo farò sapere, Grazie ancora.

      Elimina
  24. Ciao Seb ti seguo da un pò, avevo già da prima iniziato a fare qualche app con AppInventor ma non conoscevo e tutt'ora non conosco questo VCN che tu usi come emulatore, ho sempre pensato come anche tu hai confermato che non si potesse fare lo switch degli screen in modalità debug ma vedendo questo tuo video ho visto che con questo VCN c'è la possibilità di usare un emulatore che ha le stesse potenzialità di uno creato con l'AVD ma anche di fare lo switch degli screen, potresti gentilmente scrivermi i passaggi per poterlo usare?
    Ti ringrazio molto, colgo l'occasione per porti un'altra domanda, in questo video usi la classe Notifier, fino ad ora l'ho sempre usata e pensavo che a me funzionasse correttamente ma mi sono reso conto che mentre a te si vede sullo schermo come un vero e proprio messaggio Android, a me la fa visualizzare in grande al centro dello schermo con una scritta grigio scuro su sfondo grigio chiaro messa in larghezza "fill parent", può dipendere dalla versione di Android? Perché io ho la versione 4.2.1, però a pensarci bene anche con l'emulatore di AppInventor mi da lo stesso problema...
    Aspetto una tua risposta e complimenti per i video molto chiari!

    RispondiElimina
    Risposte
    1. Ciao Alex,quello che uso in alcuni tutorial è "VNC" (nello specifico DroidVNC server), ma è semplicemente una specie di TeamViewer o RemoteDesktop dove visualizzo sullo schermo del pc quello che vedo nello schermo del mio cellulare, quindi non è un emulatore ma è proprio il mio cellulare dove faccio girare l'applicazione che realizzo nel tutorial, ecco perchè posso usare lo switch tra uno screen e l'altro, perchè l'app gira sul telefono :)

      per la seconda domanda, si ci sono differenze se si usa il notifier a seconda delle versioni android può essere che cambi leggermente il font o la grandezza di esso.
      Con ICS per esempio si vedevano molto piccole le scritte mentre con la 4.2 si vedono di nuovo ad una grandezza "ragionevole", so che han cambiato anche nel codice il font per il notifier, quindi può essere che in versioni successive di App Inventor cambi ancora (anche se ovviamente le funzionalità resteranno le stesse)

      Elimina
    2. Grazie mille per le risposte ;)
      Io pensavo che nei tutorial eri ancora in modalità debug, ora mi rendo conto che invece avevi già scaricato l'app sul telefono, scaricherò DroidVNC perché mi sarà molto utile.
      Per quanto riguarda il notifier è la stessa cosa che ho pensato anch'io purtroppo su qualsiasi terminale installo la app si vede sempre allo stesso modo e anche sull'emulatore, spero che cambino le cose in un successivo aggiornamento di AppInventor, potrebbe essere una cosa momentanea!

      Elimina
    3. Con la versione v132 il notifier si vede molto più in grande (almeno sul mio nexus con android 4.2.1) quasi preferivo la versione precedente :)
      speriamo sia customizzabile il font per il notifier al più presto, prima era troppo piccolo ora è troppo grosso :)

      Elimina
  25. Questo commento è stato eliminato dall'autore.

    RispondiElimina
    Risposte
    1. non penso che serva cambiare qualcosa perchè sei in Francia, prova a scaricarti il mio sorgente e far girare quello sul tuo telefono.
      Magari hai semplicemente sbagliato anche una sola parola e l'activitystarter non trova l'attività di navigazione e quindi ti da errore.

      Elimina
  26. Salve Sebastiano a me funziona perfettamente ma volevo sapere se c'è la possibilità di inserire una mappa che funzioni offline con multitouch, oppure in alternativa un immagine della cartina della mia città grazie :)

    RispondiElimina
    Risposte
    1. Una mappa interattiva offline purtroppo non si può inserire,
      si può inserire un immagine statica di una mappa (senza multitouch), semplicemente aggiungendo un canvas la cui immagine sia l'immagine della mappa da visualizzare.
      Putroppo questa soluzione è tutt'altro che ottimale visto che con un pò di zoom si sgrana tutto...

      Elimina
  27. Ciao Sebastiano, girando nel Play Store ho trovato un app particolare e secondo me veramente potenziale, si chiama Sonar ed è una sorta di cerca persone. Praticamente rivela la posizione del propio cellulare su mappa e la posizione di chi ha la stessa app aperta, dateci un occhio. E' possibile creare la stessa con App Inventor? E' richiesto qualche tipo di supporto sul network o satellite?
    (Ho postato qui perchè nel forum mi si blocca, boh)

    RispondiElimina
    Risposte
    1. Ciao Gurzu (bel nick)
      si è possible fare un app simile, in AI ci sono gli strumenti per rilevare la posizione GPS e per esempio c'è il componente texting per mandare sms con la posizione (o si può mandare la posizione via email).
      Bisogna studiare bene come far interagire l'app che invia la posizione e quella che la riceve ma sulla carta la cosa è fattibile...
      Però mi sorge anche una domanda, ci sono migliaia di app di questo tipo e anche whatsup oppure waze o google maps stesse offrono la possibilità di "geolocalizzarsi", perchè rifarlo in AI?
      Ovvio che se è perchè si pensa di poter fare di meglio, ben venga la cosa ma se è perchè pensi non esistano app simili,beh, ce ne sono a migliaia :)

      Elimina
  28. Mi interessava che si potesse vedere la mia posizione e la posizione di chi ha l' app sulla stessa mappa stradale, in una img dimostrativa di Sonar almeno si vede così. Poi da lì potrei creare un qualcosa, diciamo che mi serve una base.

    RispondiElimina
  29. Ciao ho dei file kml con percorsi memorizzati da me...vorrei creare una app con la quale l'utente può accedere ai file che vengono memorizzati nel suo tel al momento in cui scarica l'app.....ha qualche dritta da darmi?
    Grazie mille

    RispondiElimina
    Risposte
    1. purtroppo al momento non è possibile caricare file kml e visualizzarli in app inventor,quel che puoi fare è usare una webview ed al suo interno visualizzare un link ad una mappa di google maps con caricato il percorso kml, tutta la preparazione della mappa la devi fare su web, poi con app inventor la visualizzi e basta

      Elimina
  30. Ciao Sebastiano voglio solo dirti che sei un grande...ho una domanda per te e sicuramente visto la tua grande capacità saprai come aiutarmi (sono un novellino del campo). In ogni caso il mio intendo è quello di far riconoscere dei dispositivi android "mandanti" (numero 2 in su) con wi-fi (o altro modo) con un(cellulare android/pc) dispositivo "ricevente" che si trova nelle vicinanze diciamo 5 m e si connettono obbligando i "mandanti" (dispositivi android) di mandare dei dati (orario, nome utente, cose di questo tipo)...so che è un po' complicato ma volevo solo qualche dritta per incominciare (i comandi da usare) ringrazio chiunque volesse darmi una mano. grazie mille.

    RispondiElimina
  31. Ciao Sebastiano avrei bisogno di qualche dritta ti spiego faccio parte di un gruppo di camperisti e sto cercando di creare un'app che ci permetta di aprire una mappa (da me gia creata su maps) che ci permetta di farci navigare verso i punti gia segnati sulla mappa.
    quindi tasto 1 dovrebbe aprire maps sulla mappa già creata e una volta scelto un punto di interesse nella mappa accendere il navigatore che ci calcoli la strada dalla ns posizione fino al punto e fattibile?
    Ciao Grazie

    RispondiElimina
    Risposte
    1. Ciao Antonio, non c'è ancora un componente che gestisca la mappa come chiedi te, quindi direttamente questa cosa non si può fare.
      Puoi usare un approccio "ibrido" ovvero con una webview mostri la mappa (dando l'url da caricare nella webview con l'indirizzo della tua mappa coi tuoi marker)
      e poi magari crei un listpicker con al suo interno tutti gli indirizzi selezionabili (so che sarà un lavoraccio non ho idea di quanti di questi punti puoi avere),
      quando l'utente seleziona un indirizzo con il listpicker a quel punto puoi far partire con l'activitystarter il navigatore alle coordinate esatte.
      So che è un pò laborioso perchè devi fare il lavoro due volte ma attualmente che mi venga in mente è l'unica soluzione, altra strada che potresti provare a percorrere (non so se funzionerà) è quella di cercare in qualche modo di estrarre latitudine/longitudine dalla tua mappa del punto che interessa con il componente web, se ci riesci a quel punto basta poi far partire il navigatore all'indirizzo scelto.
      Magari ci sono altre soluzioni ma al momento non mi vengono in mente, ciao!

      Elimina
    2. grazie ho fatto piu o meno come hai detto tu ma soprattutto quello che ho fatto e grazie a te prova a darci uno sguardo e dimmi cosa ne pensi su playstore si chiama camperisti sardi se hai qualche suggerimento da darmi ti lascio la mail tatospiga@gmail.com
      Grazie

      Elimina
  32. antonio questo potrebbe esserti utile per calcolare la distanza http://www.aral-net.it/?p=116 per il resto non so bisogna chiedere al master Sebastiano

    RispondiElimina
  33. Ciao bellissimi tutorial! Vorrei chiederti se è possibile creare una mappa, un navigatore e street view solo per una singola città senza dover aprire la mappa per tutto il mondo. Grazie mille in anticipo ciao! Ale

    RispondiElimina
    Risposte
    1. Ciao Ale,lo puoi fare dipende ovviamente da te, puoi aprire la mappa ad un punto qualsiasi che gli imposti in app inventor, puoi far partire la navigazione ad una destinazione qualsiasi così come far vedere lo street view del posto che vuoi te.
      Tutto dipende da come programmi gli eventi in app inventor, ti consiglio di seguire anche gli altri tutorial per schiarirti un pò le idee anche su altri aspetti di AI :)

      Elimina
  34. ciao,intanto vorrei complimentarli per i tutorial, e poi volevo chiederti, dato che a me non va proprio di prendere le cose per buono, se potessi darmi qualche dritta sulla logia delle API... da inserire nelle nostre applicazioni...o meglio se avessi dovuto farlo da solo non avrei avuto alcuna idea su cosa cercare per integrare l'applicazione di Gmaps..ho provato a cercare su internet ma non riesco proprio a capirci nulla....ti ringrazio in anticipo...e complimenti ancora

    RispondiElimina
  35. Scusami ma non si potrebbe fare la stessa cosa per selezionare una foto nella galleria e inserirla per es in un canvas

    RispondiElimina
    Risposte
    1. non capisco il link tra questo tutorial e quello del canvas,c'è il componente "imagepicker" per scegliere le immagini dalla galleria che poi puoi caricare nel canvas...

      Elimina
  36. Scusami Sebastiano potresti darmi i link dove hai scaricato il programma per vedere lo schermo android nel pc

    RispondiElimina
    Risposte
    1. Ciao, adesso uso "BBQScreen" mentre prima usavo "DroidVNC" ma ora col Nexus4 non mi va più...
      cmq per favore per i prossimi commenti, usa il forum o i post "adeguati" sul blog, quindi nel caso del Canvas Save usa il post su quel tutorial altrimenti si fa confusione e ci sono informazioni che ad altri non interessano...
      Prova a chiedere nel forum per quanto riguarda ImagePicker è davvero semplice, ciao

      Elimina
  37. ciao, innanzitutto complimentissimi per i tutorial che seguo appassionatamente, vorrei chiedere se è possibile rimanendo in questo contesto,mettere le icone "originali" di google maps, navigator e street view al posto dei relativi button. grazie in anticipo
    Maurizio

    RispondiElimina
    Risposte
    1. si, puoi vedere il tutorial sui pulsanti grafici sempre qui sul mio blog , comunque basta caricare un immagine come sfondo per i pulsanti ed in questa immagine mettere le icone desiderate.

      Elimina
  38. Ciao,
    innanzi tutto complimenti per i tutorial. Ho iniziato da poco a programmare in android e grazie a te sto imparando tantissimo. Volevo relizzare un applicazione per certi versi molto simile a questa che ho trovato su google play https://play.google.com/store/apps/details?id=app.isole&hl=it. Mi interessa soprattutto la visualizzazione delle mappe con i pulsanti che attivano e disattivano i punti di interesse ed il fatto che cliccandoci si apre una nuova pagina con le caratteristiche del posto. Sai dirmi se è possibile crearla con App Inventor? altrimenti come si può fare?

    RispondiElimina
    Risposte
    1. l'applicazione che mi hai linkato è realizzata con Android SDK, purtroppo con AI non è possibile avere la stessa flessibilità, puoi studiarti la documentazione di google maps e capire come è possibile realizzare delle mappe con dei punti di interesse che poi potresti incorporare in maniera statica usando una webview in AI.
      Non è però possibile fare una mappa cliccabile nel vero senso del termine, puoi fare ad esempio una mappa con i punti di interesse diciamo A,B,C,D,etc (e questo devi imparare a farlo leggendo la documentazione di google maps e le sue API) e poi inserisci dei pulsanti in App Inventor che per esempio ti aprono l'app mappe a quel preciso indirizzo o danno più informazioni su quel luogo.
      spero di essere stato abbastanza chiaro, cmq per queste cose AI è abbastanza limitato purtroppo...

      Elimina
  39. Ciao mi chiamo Marilisa e devo farti i complimenti per il tutorial che hai realizzato
    Ho seguito alla lettera il video e ho corretto alcune cose che inizialmente avevo digitato in modo sbagliato
    Google Maps si apre e funziona tutto. Il problema è che qualsiasi cosa digiti nella casella dell'indirizzo, il risultato nella mappa è un'elenco di indirizzi col numero 48. Ti ringrazio se vorrai rispondermi presto

    RispondiElimina
    Risposte
    1. Credo di aver trovato l'errore, IndirizzoTextBox.Text invece avevo inserito IndirizzoTextBox.Height. Complimenti di nuovo

      Elimina
  40. Grazie, mi sono divertita moltissimo seguendo le tue istruzioni

    RispondiElimina
    Risposte
    1. prego! è un piacere quando i miei lettori oltre ad imparare si divertono anche :)

      Elimina
  41. Sei un mito! Stamattina non sapevo di questo strumento e, grazie a te, ho già fatto diverse app di prova! A proposito di mappe, come devo cambiare l'uri per inserire latitutine e longitudine invece di un indirizzo?

    RispondiElimina
    Risposte
    1. se non erro basta mettere un url formattato in questo modo nel DataURI:

      DataUri = geo:0,0?q=-37.866963,144.980615

      dove ovviamente ho messo delle coordinate d'esempio ma la sintassi dovrebbe essere quella.
      fammi sapere se funziona, grazie!

      Elimina
    2. Funge che è un piacere! Grazie!!!

      Elimina
  42. Ciao Seba.....
    in questo tutorial abbiamo visto come trovare un punto su una mappa, e come navigarci verso...
    Supponiamo invece di avere un database con le coordinate di 3 punti di interesse, ad esempio casaA,CasaB,casaC.
    Posso mostrare sulla mappa la localizzazione di questi 3 punti?
    Quello che voglio fare è questo, uso la geolocalizzazione per individuare la mia posizione, nota la mia posizione vorrei poter vedere sulla mappa questi tre punti che sono presenti in un database. Cliccando su uno di essi vorrei che si aprisse una pagina con delle indicazioni riguardo il posto. Potresti darmi consigli a riguardo?

    RispondiElimina
  43. Salve, ho collegato google maps all'applicazione e funziona, però mi serve una funzione specifica visualizzare su una mappa tutti gli indirizzi salvati... come posso fare? Mi spiego meglio nell'app gestisco le anagrafiche con gli indirizzi... con un tasto riesco a navigare verso uno di questi... come faccio però a visualizzare su mappa contemporaneamente tutti gli indirizzi salvati e scegliere un percoso magari tracciandolo col dito tra più persone? Grazie in anticipo.

    RispondiElimina
    Risposte
    1. Che io sappia non lo puoi fare con l'activitystarter, però puoi pensare di integrare una mappa in una webview da mostrare nella tua app, e nella webview carichi un javascript con le informazioni sulla mappa che ti interessano,
      puoi vedere questo esempio:
      http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example
      dove c'è una pagina html che se caricata nella webview ti fa vedere una mappa con alcuni punti di interesse
      non ho mai provato ma dovrebbe funzionare anche con AI, il problema è rendere "dinamico" il file html ovvero caricare al suo interno i punti di interesse in base a quello che l'utente ha selezionato dalla sua app...

      Elimina
  44. Salve a tutti, vorrei sapere se è possibile aprire google drive attraverso activity starter. Vorrei che mi si apra proprio l'applicazione drive e non che lo faccia all'interno dell'app creata con app'inventor. sapete qualcosa a rigurado?
    grz

    RispondiElimina
  45. Per fare questo tutorial hai utilizzato la vecchia versione. Sulla nuova versione la voce MAKE TEXT non c'è. In che modo può essere sostituita per la nuova versione? Grazie.

    RispondiElimina
    Risposte
    1. Ciao, puoi usare il componente "join" sempre nella palette text, è equivalente al "vecchio" make text.

      Elimina
    2. Provato e funzionante sull'emulatore di Mit App Inventor 2, ma se installo il file su un altro emulatore (Genymotion) Samsung Galaxy S3 vers. android 4.3 mi dice:" Error 601: no corresponding activity was found. Perche?

      Elimina
    3. Il problema che l'emulatore della Genymotion non ha installato Google Map ed è per questo motivo che l'app non funziona. Provato su un Samsung Core con installato Google Map funziona perfettamente.

      Elimina
    4. Se vuoi puoi installare Maps anche in Genymotion, è davvero semlice, basta che ti scarichi le Gapps corrispondenti alla tua versione di android in Genymotion e poi fai il drag and drop del file zip delle gapps, aggiungi il tuo account Google ed il gioco è fatto :)

      Elimina
  46. Ciao Sebastiano,
    grazie hai tuoi insegnamenti ho fatto la mia app "taxi cecina" per il calcolo preventivo prezzi sfruttando google maps, tuttavia vorrei migliorarla facendo sì che chi ha scaricato la mia app possa seguirmi durante l'avvicinamento dopo la richiesta di un servizio.
    credo sia molto difficile..... certamente per me.
    ciao e grazie.

    RispondiElimina
    Risposte
    1. Ciao, credo di si che sia parecchio difficile da realizzare come cosa,
      dovresti provare a guardare l'integrazione di google maps con javascript per far si che tu possa visualizzare magari in una webview una mappa personalizzata con dei marker nel posto che gli dici te.
      Ovviamente il posto lo dovrai caricare dinamicamente dalla tua app inserendo magari le coordinate geografiche della tua posizione attuale.

      Elimina
  47. Ciao Sebastiano, innanzitutto grazie per i tuoi utilissimi tutorial.
    Passo alla domanda: è possibile, tramite un button, richiamare una mappa già creata con Google Maps e visualizzarla con l'app Maps di Android, piuttosto che utilizzare un componente webviewer?
    Grazie.

    RispondiElimina
  48. E' possibile inviare un messaggio ad un altro cellulare con una "chiamata" al navigatore? Sarebbe utile tipo per raggiungere qualcuno, o meglio ancora ad una lista di amici. Grazie

    RispondiElimina
    Risposte
    1. Se invii tramite sms o messaggio email , whatsapp o altro un link del tipo di google maps (quindi mi pare un qualcosa del tipo geo:0,0?q=google (ovviamente da cambiare a seconda delle tue necessità))
      chi riceve il messaggio potrà aprire la sua app di google maps all'indirizzo specificato alle coordinate che gli hai appena passato

      Elimina
  49. volevo creare un app che restituisce l'indirizzo cioè il nome della via da coordinate gps usando penso la funzione cosa c'è qui? di google maps è possibile?

    RispondiElimina
  50. Ciao Sebastiano.
    Innanzitutto grazie per i tutorial che realizzi.
    Io ho realizzato un sito che al suo interno ha gia i pulsanti predisposti per il gps e la composizione automatica.
    Volevo sapere se fosse possibile abilitare queste funzioni su una web-view creata con AI.

    RispondiElimina
    Risposte
    1. Credo di si, non ho provato.
      Se provi facci sapere se funziona.
      Grazie!

      Elimina
  51. Ciao dopo diversi anni torno a seguire il tuoi tutorial, tuttavia non riesco a capire come realizzare un progetto: vorrei realizzare una app in cui utilizzando una sorgente esterna (tipo elenco excel o simili con i dati mome, indirizzo, ecc) riesco a visualizzare gli indirizzi su su google maps. Potresti aiutarmi? Grazie Ilario

    RispondiElimina
    Risposte
    1. Ciao Ilario, la cosa è abbastanza semplice, prova a seguire i miei tutorial sul TinyDB o TinyWebDB o su Google spreadsheet per capire come leggere gli indirizzi da una fonte esterna.
      Una volte che li avrai all'interno della tua app, basta lanciare l'activitystarter di google maps come faccio vedere in questo e altri video, dove ovviamente sostituirai l'indirizzo con quello letto dalla fonte dati esterna.
      Spero di esserti stato d'aiuto, buon app inventing!

      Elimina
    2. grazie per le informazioni. ti informerò dei miei progressi

      Elimina
  52. Ciao Sebastiano
    vorrei realizzare un'app dove l'utente, cliccando su una mappa, estragga in automatico le coordinate che vengano salvate in un Tinydb.
    È possibile realizzare questa funzionalità?
    Grazie

    RispondiElimina
    Risposte
    1. Ciao Riccardo, é possibile farlo solo utilizzando una webview in cui inseriamo una mappa google map html/javascript.
      Infatti poi sarà il codice javascript che passerà alla nostra app la posizione cliccata sulla mappa.
      Un esempio in inglese lo puoi scaricare da qui: http://puravidaapps.com/coordinates.php

      Elimina
  53. Ciao Sebastiano, ti seguo da diverso tempo e grazie a te ho imparato tantissimo su AppInventor ed ho realizzato alcune app che mi sono molto utili.
    Ho letto tutte le richieste degli utenti ma non ho mai trovato una spiegazione al problema che non riesco a risolvere da svariati mesi.
    Ho realizzato una app con due text box in cui inserire luogo di partenza e di destinazione.
    Tramite un activity starter, alla pressione di un bottone, apro una mappa in Google Maps che mi visualizza il percorso (su strada) con i relativi valori di distanza e di tempo di percorrenza, vorrei a questo punto estrarre automaticamente entrambi questi valori (km e tempo) e riportarli all'interno della mia app per eseguire successivamente altri calcoli.
    Non sono capace di estrarre questi valori.
    Forse è un po' troppo complicato per me.
    Mi perdo in migliaia di pagine che parlano di dati json, xml, google maps api, etc... ma non riesco a venirne a capo.
    La app funziona anche con destinazioni multiple, ma come estrarre questi dati? Come riportarli in ambiente app per poterli "rimaneggiare"?
    Vorrei che fosse una cosa automatica, non che debba trascriverli dopo aver letto i valori.
    È possibile farlo in AI2? E se si... come?
    Grazie per la tua paziente diffusione del sapere.

    RispondiElimina
  54. Ancora io: se invece di lavorare su Google Maps potessi visualizzare il mio percorso ed estrarre i relativi dati da ViaMichelin potrei recuperare in una sola consultazione anche il costo di un eventuale pedaggio autostradale... (se previsto dal percorso).
    Quindi la domanda successiva è: si può fare anche utilizzando le mappe di ViaMichelin?
    Grazie ancora.

    RispondiElimina
  55. salve Sebastiano!devo farti tutti i miei migliori complimenti per la cura del dettaglio con cui spieghi nei tutorials ogni aspetto dell'inserimento dati,cosa preziosa per noi neofiti.
    comunque,con mio grande stupore,a me è funzionato subito tutto,in modo diverso ma tutto!
    ho caricato l'app sul mio drive e l'ho installata sul mio tel.e funziona! però non il tasto"naviga" mi compare una scrittina nera che dice "destinazione. quantunque se digito un indirizzo in "mappa" il cell mi chiede l'attivazione del geo e fa tutto ciò che tu descrivi in "naviga"
    ora a mia domanda è: così come quando si è a pochi metri dalla destinazione la vocina ce lo comunica,non sarebbe possibile saperlo nel raggio di 2 Km. e far partire una suoneria specifica?
    ancora complimenti e piacere di aver conosciuto questo blog prezioso.
    maurizio

    RispondiElimina
  56. ciao sebastiano, sto creando un app di emergenza per mia nonna. ti spiego meglio... vorrei creare un pulsante di emergenza con un numero di telefono già impostato e un messaggio già impostato. fin quì tutto ok... ora vorrei che nello stesso tempo che preme il pulsante di emergenza mi dia la posizione esatta con il gps? è fattibile? mi potresti gentilmente spiegare come posso fare? ti ringrazio anticipatamente e i tuoi blog per me sono essenziali... spero mi rispondi presto perchè mi sono bloccato

    RispondiElimina
  57. Ciao
    sul Play Store di Google puoi trovare una mia app che ha proprio le funzionalità che desideri per tua nonna. Si chiama "GPS message".
    Provala e fammi sapere.
    Ciao

    RispondiElimina
    Risposte
    1. ciao riccardo risi e grazie per la risposta... mi potresti spiegare e aiutare per la realizzazione? lo so che già esistono vorrei solo cimentarmi a crearla... sei stato gentilissimo e comunque vedrò subito come funziona aspetto tua risposta

      Elimina
    2. applicazione provata ed e veramente come vorrei realizzarla io... ma solo con un solo numero... puoi aiutarmi? ti ringrazio anticipatamente

      Elimina
  58. I know more easier way how to spy your kids cell phone text messages https://mxspy.com/spy-text-messages/ this is my favorite cell phone spy app, one I'm using it for a half of year and I'm glad about it. Try to, hope it will be useful for you. Good luck.

    RispondiElimina
  59. I recently found a software that could spy on everything that is happening on the phone. I tested it on my daughter. I secretly installed this https://spyontextmessages.net/ on her phone. The result exceeded expectations. I did not think it was possible. Some programs are protected from this.

    RispondiElimina
  60. Ciao Sebastiano, sono Andrea uno studente di ingegneria che deve realizzare un app con AI (che non ha mai utilizzato prima). Vorrei sapere se fosse possibile creare una mappa dove si possano aggiungere dei marker e salvarli tramite l'applicazione di volta in volta e dove sia possibile ottenere la localizzazione tramite gps per far vedere in che posizione si trova l'utilizzatore rispetto ai marker. Ti ringrazio infinitamente in anticipo, sarebbe un aiuto fondamentale il tuo.

    RispondiElimina
    Risposte
    1. Studiati fusion table di google. Vai su google drive.

      Elimina
    2. Con fusion table e app inventor ho creato questa app eRonde vai su play store e prova a vedere se è quello che ti interessa. l'icona dell'app è un ladro

      Elimina
  61. OLÁ , SABERIA ME DIZER DEPOIS QUE O GOOGLE TRAÇA A ROTA EU QUERIA RECUPERAR APENAS A DISTÂNCIA ENTRE DOIS PONTOS DIGITADOS?

    RispondiElimina