7 releases

Uses new Rust 2024

new 0.0.1-alpha.10 Nov 3, 2025
0.0.1-alpha.9 Oct 31, 2025
0.0.1-alpha.8 Aug 8, 2025
0.0.1-alpha.7 Jul 3, 2025
0.0.1-alpha.3 Jul 9, 2024

#240 in Geospatial

Download history 3/week @ 2025-07-12 65/week @ 2025-08-02 63/week @ 2025-08-09 14/week @ 2025-08-16 34/week @ 2025-08-23 29/week @ 2025-08-30 18/week @ 2025-09-06 9/week @ 2025-09-13 8/week @ 2025-09-20 24/week @ 2025-09-27 10/week @ 2025-10-04 8/week @ 2025-10-11 22/week @ 2025-10-18 24/week @ 2025-10-25

67 downloads per month
Used in 5 crates (4 directly)

MIT/Apache

130KB
2.5K SLoC

ecitygml

Library for processing CityGML data.

The library is at an early stage of development.

Contributing

The library is developed at the TUM Chair of Geoinformatics and contributions are highly welcome.


lib.rs:

ecitygml is a library for processing CityGML data.

Only reading of CityGML version 3.0 datasets is currently supported.

Example

To get started, read a CityGML 3.0 dataset into memory and print all GML IDs of the building.

use std::path::PathBuf;
use ecitygml_io::CitygmlReader;

// read the CityGML dataset
let file_path = PathBuf::from("example/city_model.gml");
let citygml_model = CitygmlReader::from_path(file_path)
    .expect("file extension should be correct")
    .finish()
    .expect("parsing should work");

// iterate over all buildings
for current_building in citygml_model.building {
    println!(
        "GML ID of the current building: {}",
        current_building.occupied_space.space.city_object.abstract_gml.id
    );
}

Dependencies

~18MB
~320K SLoC