public static Single<Address> getFromLocation(@NonNull final Geopoint coords) {
        final String method = getMethod("", coords.getLatitudeE6(), coords.getLongitudeE6());
        final Parameters param = new Parameters("lat", String.valueOf(coords.getLatitude()), "lon", String.valueOf(coords.getLongitude()), "t", method);
        return Network.requestJSON(PROXY_BASE, param)
                .flatMapObservable((Function<ObjectNode, Observable<Address>>) response -> Observable.create(emitter -> {
                    try {
                        emitter.onNext(osmToAddress(response));
                        emitter.onComplete();
                    } catch (final Exception e) {
                        Log.e("Error decoding OSM Nominatum address", e);
                        emitter.onError(e);
                    }
                })).firstOrError();
    }
Retrieve the physical address for coordinates. The work happens on the network scheduler.

@param coords the coordinates
@return an observable containing one location or an error
main/src/main/java/cgeo/geocaching/address/OsmNominatumGeocoder.java