todos paises obtener los longitud lector latitud google geograficas ejemplos coordenadas calcular buscar android google-maps google-geocoder

android - paises - lector de coordenadas



¿Cómo puedo encontrar la latitud y la longitud de la dirección? (7)

Así es como puede encontrar la latitud y la longitud de donde hemos hecho clic en el mapa.

public boolean onTouchEvent(MotionEvent event, MapView mapView) { //---when user lifts his finger--- if (event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels( (int) event.getX(), (int) event.getY()); Toast.makeText(getBaseContext(), p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() /1E6 , Toast.LENGTH_SHORT).show(); } return false; }

funciona bien.

Para obtener la dirección de la ubicación, podemos usar la clase de geocodificador.

Quiero mostrar la ubicación de una dirección en Google Maps.

¿Cómo obtengo la latitud y la longitud de una dirección usando la API de Google Maps?


El siguiente código funcionará para google apiv2:

public void convertAddress() { if (address != null && !address.isEmpty()) { try { List<Address> addressList = geoCoder.getFromLocationName(address, 1); if (addressList != null && addressList.size() > 0) { double lat = addressList.get(0).getLatitude(); double lng = addressList.get(0).getLongitude(); } } catch (Exception e) { e.printStackTrace(); } // end catch } // end if } // end convertAddress

Donde la dirección es la Cadena (código postal de estado de la ciudad de 123 Testing Rd) que desea convertir a LatLng.


La solución de Ud_an con API actualizadas

Nota : la clase LatLng es parte de los servicios de Google Play.

Obligatorio :

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/>

Actualización: si tiene el objetivo SDK 23 y superior, asegúrese de tener el permiso de tiempo de ejecución para la ubicación.

public LatLng getLocationFromAddress(Context context,String strAddress) { Geocoder coder = new Geocoder(context); List<Address> address; LatLng p1 = null; try { // May throw an IOException address = coder.getFromLocationName(strAddress, 5); if (address == null) { return null; } Address location = address.get(0); p1 = new LatLng(location.getLatitude(), location.getLongitude() ); } catch (IOException ex) { ex.printStackTrace(); } return p1; }


Si desea colocar su dirección en el mapa de Google, entonces la manera más fácil de usar

Intent searchAddress = new Intent(Intent.ACTION_VIEW,Uri.parse("geo:0,0?q="+address)); startActivity(searchAddress);

O

si necesita obtener latitud larga de su dirección, utilice Google Place Api siguiente

cree un método que devuelva un JSONObject con la respuesta de la llamada HTTP como sigue

public static JSONObject getLocationInfo(String address) { StringBuilder stringBuilder = new StringBuilder(); try { address = address.replaceAll(" ","%20"); HttpPost httppost = new HttpPost("http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false"); HttpClient client = new DefaultHttpClient(); HttpResponse response; stringBuilder = new StringBuilder(); response = client.execute(httppost); 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) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonObject; }

ahora pasa ese JSONObject al método getLatLong () como sigue

public static boolean getLatLong(JSONObject jsonObject) { try { longitute = ((JSONArray)jsonObject.get("results")).getJSONObject(0) .getJSONObject("geometry").getJSONObject("location") .getDouble("lng"); latitude = ((JSONArray)jsonObject.get("results")).getJSONObject(0) .getJSONObject("geometry").getJSONObject("location") .getDouble("lat"); } catch (JSONException e) { return false; } return true; }

¡Espero que esto te ayude a encontrar a otros ...! Gracias..!!


Una respuesta al problema de Kandha arriba:

Arroja el "servicio java.io.IOException no disponible" ya di esos permisos e incluí la biblioteca ... puedo obtener vista de mapa ... arroja esa IOException en el geocodificador ...

Acabo de agregar un catch IOException después de la prueba y resolvió el problema

catch(IOException ioEx){ return null; }


Geocoder coder = new Geocoder(this); List<Address> addresses; try { addresses = coder.getFromLocationName(address, 5); if (addresses == null) { } Address location = addresses.get(0); double lat = location.getLatitude(); double lng = location.getLongitude(); Log.i("Lat",""+lat); Log.i("Lng",""+lng); LatLng latLng = new LatLng(lat,lng); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(latLng); googleMap.addMarker(markerOptions); googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,12)); } catch (IOException e) { e.printStackTrace(); }


public GeoPoint getLocationFromAddress(String strAddress){ Geocoder coder = new Geocoder(this); List<Address> address; GeoPoint p1 = null; try { address = coder.getFromLocationName(strAddress,5); if (address==null) { return null; } Address location=address.get(0); location.getLatitude(); location.getLongitude(); p1 = new GeoPoint((double) (location.getLatitude() * 1E6), (double) (location.getLongitude() * 1E6)); return p1; } }

strAddress es una cadena que contiene la dirección. La variable de address contiene las direcciones convertidas.