pysochrone/
utils.rs

1use geo::Polygon;
2use geojson::{GeoJson, Geometry, Value};
3
4pub fn polygon_to_geojson(polygon: &Polygon<f64>) -> GeoJson {
5    let exterior_coords = polygon
6        .exterior()
7        .0
8        .iter()
9        .map(|coord| vec![coord.y, coord.x])
10        .collect::<Vec<_>>();
11
12    let geojson_polygon = Geometry::new(Value::Polygon(vec![exterior_coords]));
13
14    GeoJson::Geometry(geojson_polygon)
15}
16
17// Convert polygon to GeoJSON string
18pub fn polygon_to_geojson_string(polygon: &Polygon<f64>) -> String {
19    let geojson = polygon_to_geojson(polygon);
20    geojson.to_string()
21}