use polyline::decode_polyline;
use crate::models::GeographicCoordinate;
use super::error::ParsingError;
pub fn get_coordinates_from_geometry(
geometry: &str,
polyline_precision: u32,
) -> Result<Vec<GeographicCoordinate>, ParsingError> {
let linestring = decode_polyline(geometry, polyline_precision).map_err(|error| {
ParsingError::InvalidGeometry {
error: error.to_string(),
}
})?;
let linestring = linestring
.coords()
.map(|coord| GeographicCoordinate::from(*coord))
.collect();
Ok(linestring)
}