ubicacion - Obtención del nombre de la calle del objeto Dirección/Ubicación en Android
family link ayuda (6)
Estoy tratando de obtener el nombre de la calle de mi ubicación actual, pero parece que no puedo obtenerlo.
Yo uso este método para recuperar la dirección:
public Address getAddressForLocation(Context context, Location location) throws IOException {
if (location == null) {
return null;
}
double latitude = location.getLatitude();
double longitude = location.getLongitude();
int maxResults = 1;
Geocoder gc = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gc.getFromLocation(latitude, longitude, maxResults);
if (addresses.size() == 1) {
return addresses.get(0);
} else {
return null;
}
}
Y luego puedo hacer cosas como. address.getLocality()
y address.getPostalCode()
Pero lo que quiero es el nombre de la calle. Como en "Potterstreet 12". Cuando imprimo AddressLine (0) y AddressLine (1) solo obtengo el código postal, la ciudad y el país.
¿Cómo puedo recuperar el nombre de la calle de la posición en la que estoy actualmente?
¿Has intentado usar getAddressLine
? Vea here para más información sobre este método
Algo como esto debería hacer (no probado):
for (int i = 0; i < addresses.getMaxAddressLineIndex(); i++) {
Log.d("=Adress=",addresses.getAddressLine(i));
}
Intenta algo como esto en tu código
String cityName=null;
Geocoder gcd = new Geocoder(getBaseContext(),Locale.getDefault());
List<Address> addresses;
try {
addresses = gcd.getFromLocation(location.getLatitude(), location
.getLongitude(), 1);
if (addresses.size() > 0)
StreetName=addresses.get(0).getThoroughfare();
String s = longitude+"/n"+latitude +
"/n/nMy Currrent Street is: "+StreetName;
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
funciona para mí :-) buena suerte ;-)
Si tienes una dirección completa (ciudad + calle), en
address.getAddressLine(0)
Usted encuentra el nombre de la calle y el número.
Tuve un problema muy similar pero con el nombre del país, esta es la función que terminé usando:
function getCountry(results) {
var geocoderAddressComponent,addressComponentTypes,address;
for (var i in results) {
geocoderAddressComponent = results[i].address_components;
for (var j in geocoderAddressComponent) {
address = geocoderAddressComponent[j];
addressComponentTypes = geocoderAddressComponent[j].types;
for (var k in addressComponentTypes) {
if (addressComponentTypes[k] == ''country'') {
return address.long_name;
}
}
}
}
return ''Unknown'';
}
Debes poder adaptar esto para que el nombre de la calle salga sin mucho problema.
getFromLocation tampoco estaba funcionando para mí. Hay un par de pasos que puede tomar.
1. En primer lugar, vaya a Gradle y asegúrese de estar usando la última versión de servicios de juego.
2. No sobre especificar, la razón por la que no obtuve resultados es porque tenía mucha información en mi dirección. Cuando quité el código postal obtuve resultados cada vez.
3. Pruebe la API en línea: http://maps.google.com/maps/api/geocode/json?address=192%20McEwan%20Dr%20E,%20Caledon,%20ON&sensor=false Simplemente reemplace la dirección allí con la suya. .
Buena suerte
Geocoder gcd = new Geocoder(this, Locale.getDefault());
List<Address> addresses =
gcd.getFromLocation(currentLatitude, currentLongitude,100);
if (addresses.size() > 0 && addresses != null) {
StringBuilder result = new StringBuilder();
myaddress.setText(addresses.get(0).getFeatureName()+"-"+addresses.get(0).getLocality()+"-"+addresses.get(0).getAdminArea()+"-"+addresses.get(0).getCountryName());
}
- getfeaturename () return Streetname
- getlocality () ciudad de retorno
- getadminarea () return Estado
Eso es todo..!