code: @NonNull
      public List<Address> getFromLocation(final double latitude, final double longitude,
              final int maxResults, final boolean parseAddressComponents)
              throws GeocoderException {
          if (latitude < -90.0 || latitude > 90.0) {
              throw new IllegalArgumentException("latitude == " + latitude);
          }
          if (longitude < -180.0 || longitude > 180.0) {
              throw new IllegalArgumentException("longitude == " + longitude);
          }
  
          if (isLimitExceeded()) {
              throw GeocoderException.forQueryOverLimit();
          }
  
          final Uri.Builder uriBuilder = buildBaseRequestUri()
                  .appendQueryParameter("sensor", "true")
                  .appendQueryParameter("latlng", latitude + "," + longitude);
  
          final byte[] data;
          try {
              data = download(uriBuilder.toString());
          } catch (IOException e) {
              throw new GeocoderException(e);
          }
  
          return Parser.parseJson(data, maxResults, parseAddressComponents);
      }
docs: Returns an array of Addresses that are known to describe the area
  immediately surrounding the given latitude and longitude. The returned
  addresses will be localized for the locale provided to this class's
  constructor.
  
  <p>
  The returned values may be obtained by means of a network lookup. The
  results are a best guess and are not guaranteed to be meaningful or
  correct. It may be useful to call this method from a thread separate from
  your primary UI thread.
  
  @param latitude               the latitude a point for the search
  @param longitude              the longitude a point for the search
  @param maxResults             max number of addresses to return. Smaller numbers (1 to 5)
  are recommended
  @param parseAddressComponents If set to true, will parse "address_components". For more
  details see documentation provided in the Geocoder class
  javadoc
  @return a list of Address objects. Returns empty list if no matches were found.
  @throws IllegalArgumentException if latitude is less than -90 or greater than 90
  @throws IllegalArgumentException if longitude is less than -180 or greater than 180
  @throws GeocoderException        On Geocoder error, if the network is unavailable or any
  other I/O problem occurs