2010-07-20 13 views
6

Geocoder getFromLocationName non restituisce nulla se sto cercando i luoghi di lavoro. Qui sono i miei trovando finora:Geocoder getFromLocationName non sta trovando l'indirizzo

  • posti di alimentari, edifici commerciali -> nessun risultato
  • scuole -> trovare i risultati, ma solo tornando latitudine e longitudine. Devo fare il reverse geocoding per ottenere l'indirizzo in base alle coordinate, ma l'indirizzo non sarebbe accurato.
  • indirizzo completo -> stessa scuola, solo ritornando latitudine e longitudine
  • dall'ospedale e dalla farmacia -> ritorno latitudine e longitudine

Ho provato questo su dispositivi 1.6, 2.1 e 2.2 che ha Google Maps .

Sto cercando di trovare se c'è una limitazione spiegato da qualche parte sul SDK, ma non c'è nessuno ad eccezione di:

La quantità di dettagli in un inverso geocodificato descrizione posizione può variare, ad esempio un potrebbe contenere l'indirizzo completo del più vicino edificio , mentre un altro potrebbe contenere solo il nome di una città e il codice postale. La classe Geocoder richiede un servizio di backend non incluso nel framework Android core . I metodi di query Geocoder restituirà un elenco vuoto se non c'è il servizio di back-end in piattaforma (http://developer.android.com/reference/android/location/Geocoder.html)

[update] Così, dopo notti di ricerche, non posso sembra renderlo lavoro - Google semplicemente non mi darà il risultato. Alcune discussioni sugli sviluppatori di android indicano che getFromBusinessName è stato omesso quando Google Navigation è uscito. Quindi sto iniziando a pensare che Google stia recuperando parte del loro servizio di geocoding.

Posso sempre creare una pagina Web che utilizza l'API di Google Geocoder, ma è limitata a 2500 chiamate API - e non penso che sia legale (lol). Quindi quali sono le mie alternative qui?

+0

Hai trovato una risposta? O qualcosa per aggirare questo problema? Ho provato a trovare un servizio web o qualcosa del genere, ma qualcosa di gratuito per la ricerca di lavoro non è così facile da trovare. Inoltre, SOAP è una vera merda da usare su Android, anche con Ksaop. Guardate cosa ho trovato nella mia Logcat: Per la ricerca di lavoro, ho questo errore: * LocationMasfClient forwardGeocode():. Nessuna caratteristica in GLocation * Ma per la ricerca esatta, quando chiedo il mio indirizzo, questo errore non è presente! –

+0

Sì, le scuole, gli edifici pubblici non commerciali/non commerciali sono generalmente lì. Tuttavia, sta solo restituendo la latitudine/longitudine, non l'indirizzo. Quindi se cerco il mio indirizzo, restituirà una coordinata. Se eseguo il reverse-geocode di quella coordinata, otterrò un indirizzo diverso. Questo è solo così sbagliato ... Nessuna alternativa ancora, sto iniziando a guardare http://simplegeo.com però. Fammi sapere la tua scoperta! – LawrenceGS

+0

Ho lo stesso problema anche se NON sto cercando un indirizzo commerciale, ma un indirizzo generale specifico. – Yar

risposta

1

Ho riscontrato lo stesso problema. Sto scoprendo che l'API di geocoding spesso non restituisce alcun risultato se includo il nome del business/locale, ma mancandolo, il lat/long può essere molto meno accurato.

Ho implementato una soluzione pragmatica: 1. Chiamare l'API con una stringa tra cui la ragione sociale/locale 2. Se fallisce, chiamare una seconda volta, senza la ragione sociale/sede, solo l'indirizzo

Devo ancora vedere un caso in cui non viene restituita alcuna posizione, quindi sembra un compromesso accettabile in quanto significa che ottengo almeno i dati sulla posizione, a volte meno precisi, e il costo di una seconda chiamata API viene mitigato con chiamate filettate.

+0

Stai chiamando usando getFromLocationName? – LawrenceGS

0

Prova questo approccio:

1) Utilizzare Geocoder per convertire latitudine-longitudine per affrontare
2) Effettuare una chiamata API per Whitepages (o servizio simile), in particolare il metodo reverse_address che vi porterà ragione sociale per l'indirizzo menzionato.

Problemi correlati