una ubicación ubicacion tiempo studio real obtener localizacion hacer gratis geolocalizacion crear como app aplicacion actual android json geolocation google-maps-api-2 reverse-geocoding

android - ubicacion - Obtener la ubicación actual usando json



obtener ubicación actual android studio (1)

Para volver a cambiar el formato de lectura humana, también puede usar Geocoder, pero eso no funciona a veces porque el problema de google play service. Usé esta geocodificación json como segunda opción para el caso.

Por favor refiera la API de Geocoding de Google

El flujo de trabajo es pasar su latitud y longitud y obtener la ubicación actual. Solicitar url va a ser así.

String reqURL = "http://maps.googleapis.com/maps/api/geocode/json?latlng="+ lat+","+lng +"&sensor=true";

Con suerte, esta respuesta te ayudará.

public static JSONObject getLocationInfo(double lat, double lng) { HttpGet httpGet = new HttpGet("http://maps.googleapis.com/maps/api/geocode/json?latlng="+ lat+","+lng +"&sensor=true"); HttpClient client = new DefaultHttpClient(); HttpResponse response; StringBuilder stringBuilder = new StringBuilder(); try { response = client.execute(httpGet); HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); int b; while ((b = stream.read()) != -1) { stringBuilder.append((char) b); } } catch (ClientProtocolException e) { } catch (IOException e) { } JSONObject jsonObject = new JSONObject(); try { jsonObject = new JSONObject(stringBuilder.toString()); } catch (JSONException e) { e.printStackTrace(); } return jsonObject; } public static String getCurrentLocationViaJSON(double lat, double lng) { JSONObject jsonObj = getLocationInfo(lat, lng); Log.i("JSON string =>", jsonObj.toString()); String currentLocation = "testing"; String street_address = null; String postal_code = null; try { String status = jsonObj.getString("status").toString(); Log.i("status", status); if(status.equalsIgnoreCase("OK")){ JSONArray results = jsonObj.getJSONArray("results"); int i = 0; Log.i("i", i+ "," + results.length() ); //TODO delete this do{ JSONObject r = results.getJSONObject(i); JSONArray typesArray = r.getJSONArray("types"); String types = typesArray.getString(0); if(types.equalsIgnoreCase("street_address")){ street_address = r.getString("formatted_address").split(",")[0]; Log.i("street_address", street_address); }else if(types.equalsIgnoreCase("postal_code")){ postal_code = r.getString("formatted_address"); Log.i("postal_code", postal_code); } if(street_address!=null && postal_code!=null){ currentLocation = street_address + "," + postal_code; Log.i("Current Location =>", currentLocation); //Delete this i = results.length(); } i++; }while(i<results.length()); Log.i("JSON Geo Locatoin =>", currentLocation); return currentLocation; } } catch (JSONException e) { Log.e("testing","Failed to load JSON"); e.printStackTrace(); } return null; }

Según mi experiencia, solo funcionarán la latitud y la longitud generadas por el dispositivo . Luego llame

String currentLocation = getCurrentLocationViaJSON(lat, lng);

Hola, escribo una aplicación que obtiene la latitud y la longitud actuales y la convierte a la dirección correspondiente. Puedo obtener la latitud y longitut, pero cómo convertirla a la dirección correspondiente usando json. soy nuevo en json. intenté algunos códigos de muestra pero no obtuve la dirección

Este es mi código

import java.io.IOException; import java.util.List; import java.util.Locale; import android.content.Context; import android.location.Address; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.Menu; import android.widget.Toast; import com.google.android.gms.maps.CameraUpdate; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLngBounds; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.maps.GeoPoint; public class GMapActivity extends FragmentActivity { private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map); LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); LocationListener locListener = new GpsActivity(getBaseContext()); locManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locListener); if (map == null) { map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); map.setMyLocationEnabled(true); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.map, menu); return true; } private class GpsActivity implements LocationListener{ Marker marker; Context mcontext; public GpsActivity(Context context){ super(); mcontext=context; } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub if (location != null) { double latitude=location.getLatitude(); double longitude=location.getLongitude(); LatLng gpslocation=new LatLng(latitude,longitude); Toast.makeText(getApplicationContext(),"" +gpslocation, Toast.LENGTH_LONG).show();

pls me ayuda

gracias por adelantado