48 releases (24 breaking)

0.24.2 Feb 24, 2025
0.24.1 May 17, 2023
0.24.0 Sep 9, 2022
0.23.0 Jun 2, 2022
0.0.1 Dec 4, 2014

#1 in Geospatial

Download history 13990/week @ 2025-01-01 21207/week @ 2025-01-08 20591/week @ 2025-01-15 23788/week @ 2025-01-22 24360/week @ 2025-01-29 42794/week @ 2025-02-05 116184/week @ 2025-02-12 133477/week @ 2025-02-19 145972/week @ 2025-02-26 136678/week @ 2025-03-05 133769/week @ 2025-03-12 110890/week @ 2025-03-19 114755/week @ 2025-03-26 98686/week @ 2025-04-02 96330/week @ 2025-04-09 59072/week @ 2025-04-16

390,005 downloads per month
Used in 130 crates (102 directly)

MIT/Apache

235KB
4.5K SLoC

geojson

Documentation

Library for serializing the GeoJSON vector GIS file format

Minimum Rust Version

This library requires a minimum Rust version of 1.34 (released April 11 2019)

Examples

Reading

use geojson::GeoJson;

let geojson_str = r#"
{
    "type": "Feature",
    "properties": {
        "name": "Firestone Grill"
    },
    "geometry": {
        "type": "Point",
        "coordinates": [-120.66029,35.2812]
    }
}
"#;

let geojson = geojson_str.parse::<GeoJson>().unwrap();

Writing

use geojson::{Feature, GeoJson, Geometry, Value, JsonObject, JsonValue};

let geometry = Geometry::new(
    Value::Point(vec![-120.66029,35.2812])
);

let mut properties = JsonObject::new();
properties.insert(
    String::from("name"),
    JsonValue::from("Firestone Grill"),
);

let geojson = GeoJson::Feature(Feature {
    bbox: None,
    geometry: Some(geometry),
    id: None,
    properties: Some(properties),
    foreign_members: None,
});

let geojson_string = geojson.to_string();

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.

Dependencies

~1.5–2.6MB
~53K SLoC