15 releases (breaking)
0.11.0 | May 13, 2024 |
---|---|
0.10.1 | May 10, 2023 |
0.10.0 | Mar 12, 2023 |
0.9.0 | Feb 5, 2021 |
0.4.0 | Jul 17, 2016 |
#9 in Geospatial
7,318 downloads per month
Used in 11 crates
(9 directly)
32KB
325 lines
polyline
Fast Google Encoded Polyline encoding & decoding in Rust.
Example
use polyline;
use geo_types::line_string;
let coord = line_string![(x: -120.2, y: 38.5), (x: -120.95, y: 40.7), (x: -126.453, y: 43.252)];
let output = "_p~iF~ps|U_ulLnnqC_mqNvxq`@";
let result = polyline::encode_coordinates(coord, 5).unwrap();
assert_eq!(result, output)
A Note on Coordinate Order
This crate uses Coord
and LineString
types from the geo-types
crate, which encodes coordinates in (x, y)
/ (lon, lat)
order. The Polyline algorithm and its first-party documentation assumes the opposite coordinate order. It is thus advisable to pay careful attention to the order of the coordinates you use for encoding and decoding.
FFI
C-compatible FFI bindings for this crate are provided by the polyline-ffi crate.
Dependencies
~740KB
~14K SLoC