trazar studio son saber ruta puntos otro medir lugar kilometros google entre earth distancias distancia cuantos como calcular android google-maps google-maps-android-api-2 distance

android - studio - Recuperar la distancia desde la parte visible del mapa de Google



medir distancias google maps android (3)

Con VisibleRegion puede obtener todas las coordenadas de las esquinas y también el centro.

VisibleRegion vr = mMap.getProjection().getVisibleRegion(); double left = vr.latLngBounds.southwest.longitude; double top = vr.latLngBounds.northeast.latitude; double right = vr.latLngBounds.northeast.longitude; double bottom = vr.latLngBounds.southwest.latitude;

y se puede calcular la distancia de dos regiones por este

Location MiddleLeftCornerLocation;//(center''s latitude,vr.latLngBounds.southwest.longitude) Location center=new Location("center"); center.setLatitude( vr.latLngBounds.getCenter().latitude); center.setLongitude( vr.latLngBounds.getCenter().longitude); float dis = center.distanceTo(MiddleLeftCornerLocation);//calculate distane between middleLeftcorner and center

Quiero dibujar un círculo estático sobre un mapa con Google Maps . Cuando el usuario pellizca, el mapa se acercará / alejará.

Necesito saber el radio del mapa (relacionado con el área contenida en el círculo) y cambiar la barra de búsqueda en la parte inferior en consecuencia.

¿Alguien sabe una solución de cómo recuperar la distancia desde el borde de la pantalla de izquierda a derecha? No encontré nada en el documento de la API de Google Maps .

Algo como esto:


Primero obtén el punto central del mapa con

googleMap.getCameraPosition().target;

luego calcule el ancho del mapa y obtenga la altura / 2 y conviértalos a un Point usando los valores x y que acaba de obtener.

luego relaciona ese punto con el mapa

LatLng widthPoint = map.getProjection().fromScreenLocation(point);

Ahora que tiene el punto de tagret y el punto de ancho, puede calcular la distancia entre los 2 puntos que le dará el radio.

Nota

esto se supone siempre en modo retrato, si está en modo paisaje, el círculo será más grande que el área visible, por lo que en este caso querrá obtener la distancia desde la altura


Tengo un tiempo para escribir el código para la variable "MiddleLeftCornerLocation" en la gran respuesta dada por @Md. Monsur Hossain Tonmoy, así que solo para completarlo (no tengo suficientes puntos de reputación para comentar su respuesta, lo siento):

VisibleRegion vr = map.getProjection().getVisibleRegion(); double bottom = vr.latLngBounds.southwest.latitude; Location center = new Location("center"); center.setLatitude(vr.latLngBounds.getCenter().latitude); center.setLongitude(vr.latLngBounds.getCenter().longitude); Location middleLeftCornerLocation = new Location("center"); middleLeftCornerLocation.setLatitude(center.getLatitude()); middleLeftCornerLocation.setLongitude(left); float dis = center.distanceTo(middleLeftCornerLocation);