geo_rust

Crates.iogeo_rust
lib.rsgeo_rust
version0.4.1
sourcesrc
created_at2024-03-23 10:03:24.751131
updated_at2024-03-25 09:07:04.374051
descriptionA library for geocoding and reverse geocoding using the GeoNames dataset.
homepagehttps://github.com/LordOfPolls/georust
repositoryhttps://github.com/LordOfPolls/georust
max_upload_size
id1183455
size47,600
LordOfPolls (LordOfPolls)

documentation

README

GeoRust

A rust library for geocoding and reverse geocoding using the GeoNames dataset.

GitHub Release Crates.io Version Crates.io Total Downloads Crates.io License

Usage

Run

cargo add geo_rust

Then you can use the library like this:

use geo_rust::{GeoLocation, Country, get_postal_data, get_nearest_postcode};

fn main() {
    let geonames_data = get_postal_data(Country::All);

    let location = GeoLocation {
        latitude: 51.7923246977375,
        longitude: 0.629834723775309,
    };

    let nearest_postcode = get_nearest_postcode(location, &geonames_data).unwrap();
    println!("Nearest postcode: {}", nearest_postcode.postal_code);
}
use geo_rust::{GeoLocation, Country, get_gazetteer_data, get_nearest_place};

fn main() {
    let geonames_data = get_gazetteer_data(Country::GreatBritain);

    let location = GeoLocation {
        latitude: 51.7923246977375,
        longitude: 0.629834723775309,
    };

    let nearest_place = get_nearest_place(location, &geonames_data).unwrap();
    println!("Nearest place: {}", nearest_place.name);
}

Documentation is available at docs.rs

Features

  • Calculate the haversine distance between two locations

  • Get the nearest postcode to a location

  • Get the location of a postcode

  • Get all postcodes within a certain radius of a location

  • Get the nearest place to a location

  • Get the location of a place

  • Get all places within a certain radius of a location

  • Get all PostalData structs within a certain radius of a location

Configuration

The library uses a cache directory to store downloaded GeoNames data. By default, it uses a directory named geonames in the system's temporary directory. You can override this by setting the GEOCODER_CACHE_DIR environment variable.

To disable caching entirely, set the DISABLE_GEOCODER_CACHE environment variable to any value.

Please note, you are encouraged to "be a good neighbour" and use caching to reduce the load on the GeoNames servers.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Commit count: 28

cargo fmt