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
17pub fn polygon_to_geojson_string(polygon: &Polygon<f64>) -> String {
19 let geojson = polygon_to_geojson(polygon);
20 geojson.to_string()
21}