/osmapi-overpass

Java client for the Overpass API

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

osmapi-overpass

osmapi-overpass is a client for the Overpass API, building on top of osmapi.

Copyright and License

© 2019-2023 Tobias Zwick. This library is released under the terms of the GNU Lesser General Public License (LGPL).

Installation

Add de.westnordost:osmapi-overpass:3.0 as a Maven dependency or download the jar from there.

Android

On Android, you need to exclude kxml2 from the dependencies in your gradle.kts since it is already built-in, like so:

configurations {
    all {
        // it's already included in Android
        exclude(group = "net.sf.kxml", module = "kxml2")
        exclude(group = "xmlpull", module = "xmlpull")
    }
}

This library uses classes from the Java 8 time API, like Instant etc., so if your app supports Android API levels below 26, you need to enable Java 8+ API desugaring support.

Example Usage

First, initialize the OverpassMapDataApi

	OsmConnection connection = new OsmConnection("https://overpass-api.de/api/", "my user agent");
	OverpassMapDataApi overpass = new OverpassMapDataApi(connection);

then...

Get all shops on Malta as OSM elements

    overpass.queryElements(
        "[bbox:13.8,35.5,14.9,36.3]; nwr[shop]; out meta;",
        handler
    );

Get all shops on Malta as OSM elements together with their geometry

    overpass.queryElementsWithGeometry(
        "[bbox:13.8,35.5,14.9,36.3]; nwr[shop]; out meta geom;",
        handler
    );

Get all shops on Malta and return their name plus type of shop as table rows

    overpass.queryTable(
        "[out:csv(name, shop)][bbox:13.8,35.5,14.9,36.3]; nwr[shop]; out body;",
        handler
    );

Count the number of shops on Malta.

    ElementCount count = overpass.queryCount(
        "[bbox:13.8,35.5,14.9,36.3]; nwr[shop]; out count;"
    );

The query string is just passed through to the Overpass API. For how the query string needs to look like, consult the documentation for Overpass API Query Language.