2010-09-04 2 views

risposta

2

Si dovrà utilizzare un Geocoding Service, come quelli forniti da Google o liberamente disponibile Nominatim. Tieni presente che dal momento che fornirai semplicemente un codice postale, potresti non ottenere i risultati desiderati a causa della inesattezza dell'indirizzo stesso.

+2

Anche (almeno per Google), assicurati di inserire quanti più dettagli possibile, e magari anche di impostare alcune opzioni regionali, per assicurarti che il codice di avviamento postale venga ricercato nel paese che ti aspetti che sia. Per i formati di codice ZIP che contengono spazi, potresti prima rimuoverli, altrimenti Google potrebbe utilizzare solo la prima parte e mostrarti anche un altro Paese. – Arjan

3

Si potrebbe utilizzare YQL in questo modo: selezionare baricentro da geo.places in cui il testo = "ZIPCODE_HERE"

19

questa è una soluzione molto più semplice, assumendo i servizi geocoder sono presenti:

final Geocoder geocoder = new Geocoder(this); 
final String zip = "90210"; 
try { 
    List<Address> addresses = geocoder.getFromLocationName(zipCode, 1); 
    if (addresses != null && !addresses.isEmpty()) { 
    Address address = addresses.get(0); 
    // Use the address as needed 
    String message = String.format("Latitude: %f, Longitude: %f", 
    address.getLatitude(), address.getLongitude()); 
    Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 
    } else { 
    // Display appropriate message when Geocoder services are not available 
    Toast.makeToast(this, "Unable to geocode zipcode", Toast.LENGTH_LONG).show(); 
    } 
} catch (IOException e) { 
    // handle exception 
} 
+0

Non funziona. Dare un'eccezione "Servizio non disponibile". Hai un approccio migliore? – YuDroid

4

C'è nessun concorrente di Google in GeoCoding :)

Devi solo fare una richiesta di http per il seguente collegamento. Ecco a link

Proprio cambiamento codice postale Element Secondo i vostri requisiti. E goditelo.

Per ulteriori riferimenti, seguire il collegamento.