Autore Topic: Ricerca di un luogo sulla mappa tramite SearchDialog  (Letto 1017 volte)

Offline giac

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    android ideos
  • Sistema operativo:
    windows 7
Ricerca di un luogo sulla mappa tramite SearchDialog
« il: 26 Gennaio 2011, 22:48:33 CET »
0
Salve,

tramite il tutorial della documentazione ufficiale di android (Google Map View | Android Developers) ed il tutorial GPS e MapView di questo forum ho creato un'applicazione che mi permette di visualizzare la mappa, spostarmi, zoomare, dare delle coordinate diverse all'app tramite DDMS; sono riuscito a far apparire l'interfaccia di ricerca di android, il Search Dialog (seguendo la guida: Using the Android Search Dialog | Android Developers); adesso che l'utente può inserire una città, o un qualsiasi luogo nella barra di ricerca, devo cercare questo punto e centrare la mappa in quel punto (in modo simile all'applicazione Maps) -- come posso fare ? Devo usare un Content Provider ? Come faccio ad inoltrare questa richiesta al server (di google, presumo...)?       

Sono un po' confuso, ogni aiuto è prezioso, grazie a tutti


Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Ricerca di un luogo sulla mappa tramite SearchDialog
« Risposta #1 il: 27 Gennaio 2011, 09:09:47 CET »
0

Offline giac

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    android ideos
  • Sistema operativo:
    windows 7
Re:Ricerca di un luogo sulla mappa tramite SearchDialog
« Risposta #2 il: 27 Gennaio 2011, 14:36:07 CET »
0
Grazie, vedrò di studiarmeli; ho trovato questo link in un altro topic del forum: The Google Places API (Developer Preview) - Google Maps API Web Services - Google Code   --  secondo te mi può aiutare oppure mi porta fuori strada ?

Offline michelegrammichele

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    seven
Re:Ricerca di un luogo sulla mappa tramite SearchDialog
« Risposta #3 il: 27 Gennaio 2011, 15:51:33 CET »
0
penso che questo tutorial può essere utile Find city Google Maps API Tutorial

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
« Ultima modifica: 27 Gennaio 2011, 16:13:10 CET da Qlimax »

Offline giac

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    android ideos
  • Sistema operativo:
    windows 7
Re:Ricerca di un luogo sulla mappa tramite SearchDialog
« Risposta #5 il: 27 Gennaio 2011, 16:41:22 CET »
0
Darò un'occhiata a quelle classi; appena combino qualcosa posterò qualche implementazione  ;-)

Offline giac

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    android ideos
  • Sistema operativo:
    windows 7
Re:Ricerca di un luogo sulla mappa tramite SearchDialog
« Risposta #6 il: 10 Febbraio 2011, 13:09:41 CET »
+2
Ho risolto usando il metodo:   public List<Address> getFromLocationName (String locationName, int maxResults) della classe Geocoder; restituisce una lista di indirizzi trovati (il numero massimo e' indicato da maxResults), per esempio:

Codice (Java): [Seleziona]
List<Address> indirizzi_trovati = geoc.getFromLocationName(indirizzo_input, 5);
geoc è un oggetto della classe Geocoder;  poi ho estratto l'indirizzo insieme a latitudine e longitudine (in questo caso solo il primo della lista):

Codice (Java): [Seleziona]
Address x = indirizzi_trovati.get(0);
lat = x.getLatitude();
lon = x.getLongitude();

ho creato un GeoPoint con queste coordinate:

Codice (Java): [Seleziona]
GeoPoint point = new GeoPoint((int)lat * 1000000, (int)lon * 1000000);
per spostare la mappa in quel punto (mv è un' istanza di MapView):

Codice (Java): [Seleziona]
MapController mc = mv.getController();
mc.animateTo(p);