#geolocation #osm #api #api-bindings #web-api #nominatim

nominatim-rs

Bindings to the Nominatim web API for rust

5 unstable releases

0.3.0 Jun 8, 2023
0.2.2 Dec 4, 2021
0.2.1 Nov 1, 2021
0.2.0 Nov 1, 2021
0.1.0 Oct 14, 2021

#23 in #geolocation

29 downloads per month

MIT/Apache

36KB
753 lines

Nominatim-rs

Nominatim-rs is a rust binding for the Nominatim api. It does reverse geolocation (finding a place from coordinates), lookup and search.

Please conform to the Nominatim ToS

Example

This example searches for a location and prints out the JSON

#[tokio::main]
async fn main() {
    let client = nominatim_rs::Client::new(
        reqwest::Url::parse("https://nominatim.openstreetmap.org/").unwrap(),
        "nominatim-rust/0.1.0 test-suite".to_string(),
        Some("john_t@mailo.com".to_string()),
    )
    .unwrap();

    let search = client
        .search(
            nominatim_rs::SearchQueryBuilder::default()
                .address_details(true)
                .location_query(nominatim_rs::LocationQuery::Generalised {
                    q: "bakery in berlin wedding".to_string(),
                })
                .limit(Some(1))
                .build()
                .unwrap(),
        )
        .await
        .unwrap();

    println!("{}", serde_json::to_string_pretty(&search).unwrap());
}

Dependencies

~6–17MB
~251K SLoC