| Crates.io | cjseq2 |
| lib.rs | cjseq2 |
| version | 0.1.0 |
| created_at | 2025-06-17 11:40:24.36594+00 |
| updated_at | 2025-06-17 11:40:24.36594+00 |
| description | Temporary fork of CityJSONSeq library |
| homepage | https://github.com/hideba/cjseq |
| repository | https://github.com/hideba/cjseq |
| max_upload_size | |
| id | 1715578 |
| size | 186,876 |
cjseq is a Rust libray+binary for creating, processing, and modifying CityJSONSeq files, as well as converting to/from CityJSON.
cargo install cjseqcjseq is installed system-widecargo install cjseqgit clone https://github.com/cityjson/cjseq.gitcargo build --release./target/release/cjseq --helpcjseq can take input from either stdin or a file, and it always outputs the results to stdout.
The output can be a CityJSON object or a CityJSONSeq stream.
The library also provides functionality to convert CityJSON or CityJSONSeq files to OBJ format, which can be used for 3D visualization in many software packages.
Here's an example of how to use the OBJ conversion in your Rust code:
use cjseq::{CityJSON, conv::obj};
use std::fs::File;
use std::io::Read;
fn main() -> std::io::Result<()> {
// Read a CityJSON file
let mut file = File::open("your_file.city.json")?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
// Parse into CityJSON
let city_json = CityJSON::from_str(&contents).unwrap();
// Convert to OBJ and save to file
obj::to_obj_file(&city_json, "output.obj")?;
// For CityJSONSeq files, use:
// obj::jsonseq_file_to_obj("input.city.jsonl", "output.obj")?;
Ok(())
}
Convert a CityJSON file to a CityJSONSeq stream:
cjseq cat -f myfile.city.json > myfile.city.jsonl
Alternatively use stdin:
cat myfile.city.json | cjseq cat` will output the stream to stdin.
Convert a CityJSONSeq stream to a CityJSON file:
cat ./data/3dbag_b2.city.jsonl | cjseq collect > 3dbag_b2.city.json
cat myfile.city.jsonl | cjseq filter --bbox 85007 446179 85168 446290 > mysubset.city.jsonl