#geospatial #gis #web-services #gecoding

geocoding-async

Asynchronous Geocoding library for Rust

2 releases

0.5.1 May 1, 2024
0.5.0 May 1, 2024

#130 in Geospatial

Download history 27/week @ 2024-07-28 25/week @ 2024-08-04 2/week @ 2024-08-11 6/week @ 2024-08-25 1/week @ 2024-09-01 12/week @ 2024-09-15 23/week @ 2024-09-22 24/week @ 2024-09-29 19/week @ 2024-10-06 18/week @ 2024-10-13 17/week @ 2024-10-20 9/week @ 2024-10-27 16/week @ 2024-11-03

61 downloads per month

MIT/Apache

66KB
1K SLoC

geocoding

This is an asynchronous version of https://github.com/georust/geocoding. Maintenance of this crate is best effort.

Rust utilities to enrich addresses, cities, countries, and landmarks with geographic coordinates through third-party geocoding web services. Project is in a very early stage.

API Documentation

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


lib.rs:

This crate provides forward– and reverse-geocoding functionality for Rust. Over time, a variety of providers will be added. Each provider may implement one or both of the Forward and Reverse traits, which provide forward– and reverse-geocoding methods.

Note that for the reverse method, the return type is simply Option<String>, as this is the lowest common denominator reverse-geocoding result. Individual providers may implement additional methods, which return more finely-structured and/or extensive data, and enable more specific query tuning. Coordinate data are specified using the Point struct, which has several convenient From implementations to allow for easy construction using primitive types.

A note on Coordinate Order

While individual providers may specify coordinates in either [Longitude, Latitude] or [Latitude, Longitude] order, Geocoding always requires Point data in [Longitude, Latitude] (x, y) order, and returns data in that order.

Usage of rustls

If you like to use rustls instead of OpenSSL you can enable the rustls-tls feature in your Cargo.toml:

[dependencies]
geocoding = { version = "*", default-features = false, features = ["rustls-tls"] }

Dependencies

~8–19MB
~250K SLoC