public static Observable<Address> getFromLocationName(@NonNull final String search) {
        final String method = getMethod(search, 0, 0);
        final Parameters param = new Parameters("q", search, "t", method);

        return Network.requestJSONArray(PROXY_BASE, param)
                .flatMapObservable((Function<ArrayNode, Observable<Address>>) response -> Observable.create(emitter -> {
                    try {
                        for (final JsonNode address : response) {
                            emitter.onNext(osmToAddress(address));
                        }
                        emitter.onComplete();
                    } catch (final Exception e) {
                        Log.e("Error decoding OSM Nominatum address", e);
                        emitter.onError(e);
                    }
                }));
    }
Retrieve addresses from a textual location using OSM Nominatum geocoding API using c:geo proxy.
The work happens on the network scheduler.

@param search the location
@return an observable containing zero or more locations
@see android.location.Geocoder#getFromLocationName(String, int)
main/src/main/java/cgeo/geocaching/address/OsmNominatumGeocoder.java