Cómo obtener sólo Ciudad, Estado, País de lat, largo en android

Tengo el código abajo para convertir el lat, largo a la dirección legible humana. Ahora estoy recibiendo todos los detalles incluyendo el nombre de la calle. ¿Cómo puedo obtener sólo ciudad, estado, país? No quiero más detalles. Por favor, ayúdame.

Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); try { List<Address> addresses = geoCoder.getFromLocation(latitude, longitude, 1); String add = ""; if (addresses.size() > 0) { for (int i=0; i<addresses.get(0).getMaxAddressLineIndex();i++) add += addresses.get(0).getAddressLine(i) + "\n"; } showToastMessage(add); } catch (IOException e1) { e1.printStackTrace(); } 

La cantidad de detalle en una descripción de ubicación geocodificada inversa puede variar, por ejemplo, uno puede contener la dirección completa del edificio más cercano, mientras que otro puede contener sólo un nombre de ciudad y un código postal. Esto devolverá el nombre de la ciudad y el nombre del país

  if (addresses.size() > 0) { System.out.println(addresses.get(0).getLocality()); System.out.println(addresses.get(0).getCountryName()); } 

Para obtener más información, puede consultar el objeto Address

Utilice los métodos siguientes en los objetos de las direcciones:

getLocality()

getCountryName()

Utilizar

getAdminArea() para devolver el estado.

No sé qué tan exacto es esto para otros países, pero para direcciones en los EE.UU., esto devuelve el nombre correcto del estado.

PS Lo siento por escribir una respuesta totalmente separada, no puedo hacer comentarios todavía.

Echa un vistazo a la Address ( javadoc ) que se devuelve desde el geocodificador. Esto tiene métodos separados como getLocality() para devolver la ciudad org getCountry() para devolver el nombre del país, etc.

Utilice los métodos siguientes en los objetos de las direcciones:

  getLocality() getCountryName() 

No estoy seguro de cómo obtener el estado sin embargo.

Agregue esta lista de código de país en el archivo de cadena.

 <string-array name="CountryCodes"> <item>93,AF</item> <item>355,AL</item> <item>213,DZ</item> <item>376,AD</item> <item>244,AO</item> <item>672,AQ</item> <item>54,AR</item> <item>374,AM</item> <item>297,AW</item> <item>61,AU</item> <item>43,AT</item> <item>994,AZ</item> <item>973,BH</item> <item>880,BD</item> <item>375,BY</item> <item>32,BE</item> <item>501,BZ</item> <item>229,BJ</item> <item>975,BT</item> <item>591,BO</item> <item>387,BA</item> <item>267,BW</item> <item>55,BR</item> <item>673,BN</item> <item>359,BG</item> <item>226,BF</item> <item>95,MM</item> <item>257,BI</item> <item>855,KH</item> <item>237,CM</item> <item>1,CA</item> <item>238,CV</item> <item>236,CF</item> <item>235,TD</item> <item>56,CL</item> <item>86,CN</item> <item>61,CX</item> <item>61,CC</item> <item>57,CO</item> <item>269,KM</item> <item>242,CG</item> <item>243,CD</item> <item>682,CK</item> <item>506,CR</item> <item>385,HR</item> <item>53,CU</item> <item>357,CY</item> <item>420,CZ</item> <item>45,DK</item> <item>253,DJ</item> <item>670,TL</item> <item>593,EC</item> <item>20,EG</item> <item>503,SV</item> <item>240,GQ</item> <item>291,ER</item> <item>372,EE</item> <item>251,ET</item> <item>500,FK</item> <item>298,FO</item> <item>679,FJ</item> <item>358,FI</item> <item>33,FR</item> <item>689,PF</item> <item>241,GA</item> <item>220,GM</item> <item>995,GE</item> <item>49,DE</item> <item>233,GH</item> <item>350,GI</item> <item>30,GR</item> <item>299,GL</item> <item>502,GT</item> <item>224,GN</item> <item>245,GW</item> <item>592,GY</item> <item>509,HT</item> <item>504,HN</item> <item>852,HK</item> <item>36,HU</item> <item>91,IN</item> <item>62,ID</item> <item>98,IR</item> <item>964,IQ</item> <item>353,IE</item> <item>44,IM</item> <item>972,IL</item> <item>39,IT</item> <item>225,CI</item> <item>81,JP</item> <item>962,JO</item> <item>7,KZ</item> <item>254,KE</item> <item>686,KI</item> <item>965,KW</item> <item>996,KG</item> <item>856,LA</item> <item>371,LV</item> <item>961,LB</item> <item>266,LS</item> <item>231,LR</item> <item>218,LY</item> <item>423,LI</item> <item>370,LT</item> <item>352,LU</item> <item>853,MO</item> <item>389,MK</item> <item>261,MG</item> <item>265,MW</item> <item>60,MY</item> <item>960,MV</item> <item>223,ML</item> <item>356,MT</item> <item>692,MH</item> <item>222,MR</item> <item>230,MU</item> <item>262,YT</item> <item>52,MX</item> <item>691,FM</item> <item>373,MD</item> <item>377,MC</item> <item>976,MN</item> <item>382,ME</item> <item>212,MA</item> <item>258,MZ</item> <item>264,NA</item> <item>674,NR</item> <item>977,NP</item> <item>31,NL</item> <item>599,AN</item> <item>687,NC</item> <item>64,NZ</item> <item>505,NI</item> <item>227,NE</item> <item>234,NG</item> <item>683,NU</item> <item>850,KP</item> <item>47,NO</item> <item>968,OM</item> <item>92,PK</item> <item>680,PW</item> <item>507,PA</item> <item>675,PG</item> <item>595,PY</item> <item>51,PE</item> <item>63,PH</item> <item>870,PN</item> <item>48,PL</item> <item>351,PT</item> <item>1,PR</item> <item>974,QA</item> <item>40,RO</item> <item>7,RU</item> <item>250,RW</item> <item>590,BL</item> <item>685,WS</item> <item>378,SM</item> <item>239,ST</item> <item>966,SA</item> <item>221,SN</item> <item>381,RS</item> <item>248,SC</item> <item>232,SL</item> <item>65,SG</item> <item>421,SK</item> <item>386,SI</item> <item>677,SB</item> <item>252,SO</item> <item>27,ZA</item> <item>82,KR</item> <item>34,ES</item> <item>94,LK</item> <item>290,SH</item> <item>508,PM</item> <item>249,SD</item> <item>597,SR</item> <item>268,SZ</item> <item>46,SE</item> <item>41,CH</item> <item>963,SY</item> <item>886,TW</item> <item>992,TJ</item> <item>255,TZ</item> <item>66,TH</item> <item>228,TG</item> <item>690,TK</item> <item>676,TO</item> <item>216,TN</item> <item>90,TR</item> <item>993,TM</item> <item>688,TV</item> <item>971,AE</item> <item>256,UG</item> <item>44,GB</item> <item>380,UA</item> <item>598,UY</item> <item>1,US</item> <item>998,UZ</item> <item>678,VU</item> <item>39,VA</item> <item>58,VE</item> <item>84,VN</item> <item>681,WF</item> <item>967,YE</item> <item>260,ZM</item> <item>263,ZW</item> </string-array> 

A continuación, después de agregar el método de cambio de ubicación con código inferior.

 @Override public void onLocationChanged(Location location) { super.onLocationChanged(location); try { Geocoder gcd = new Geocoder(context, Locale.getDefault()); List<Address> addresses = gcd.getFromLocation(location.getLatitude(), location.getLongitude(), 1); if (addresses.size() > 0) { String countryName = addresses.get(0).getCountryCode(); LogUtils.LOGE("TAG_DATA", getCountryZipCode(countryName), Const.LOG_VISIBILITY); } } catch (IOException e) { e.printStackTrace(); } } public String getCountryZipCode(String country) { String CountryZipCode = ""; String[] rl = this.getResources().getStringArray(R.array.CountryCodes); for (String aRl : rl) { String[] g = aRl.split(","); if (g[1].trim().equals(country)) { CountryZipCode = "+" + g[0]; break; } } return CountryZipCode; } 
  • Servicio no disponible al llamar a geoCoder.getFromLocation ()
  • Autocomplete la API del sitio para obtener las coordenadas GPS de la dirección ingresada
  • Geocoder.getFromLocationName devuelve sólo null
  • Android GeoCoder devuelve sólo 1 resultado
  • Java.io.IOException: No se puede analizar la respuesta del servidor en getFromLocationName ()
  • El método isPresent () de Geocoder siempre devuelve false
  • ¿Por qué Android Geocoder está lanzando una excepción "Servicio no disponible"?
  • Extraer dirección de cadena - Equivalente a NSDataDetector en iOS
  • Obtener el contexto en una clase que implementa Runnable
  • Android Geocoder.getFromLocationName dejó de funcionar con los límites
  • Android geocoder ubicación inversa - forma fiable para obtener la ciudad?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.