In my application I am displaying places using markers on google maps. But I am marking all the available places at once which I don't want to do. I wanted to display the places which only fits into the screen by fetching the maps coordinates as shown below:
I wanted only to fetch the places that are available in this range from the source by sending the coordinates of the maps. I am not sure whether I should capture all the 4-coordinates from the corners of the screen?
Can anyone help me to figure out this?
First, open Google Maps on your computer, right-click the place you want to get coordinates. A pop-up window will show, you can find the latitude and longitude on the top. Left-click and copy them automatically.
The short story is you need to do: Geocoder geocoder = new Geocoder(this, Locale. getDefault()); List<Address> addresses = geocoder. getFromLocation(lat, lng, 1);
Steps to get current latitude and longitude in Android Location permissions for the manifest file for receiving the location update. Create LocationManager instance as a reference to the location service. Request location from LocationManager. Receive location update from LocationListener on change of location.
You can get those by using this method:
yourMapView.getMap().getCameraPosition();
This returns you a CameraPosition object. The coordinates of the camera is given by the field target and the zoom level by the field zoom. Now you should be able to calculate the aproximate coordinates of the screen corners.
To obtain the TopLeft and BottomRight coordinates of the map at any time, use the following:
public GeoPoint getCurrentTL(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(0, 0);
}
public GeoPoint getCurrentBR(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(map.getWidth(), map.getHeight());
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With