From 419b830acf895afcb4298b1c2057560dabc8239d Mon Sep 17 00:00:00 2001 From: dongho Date: Fri, 6 Sep 2024 01:47:14 +0900 Subject: [PATCH] longitude and lattitude can be accessed --- src/main.rs | 32 +++++++++----------------------- src/main2.rs | 31 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 src/main2.rs diff --git a/src/main.rs b/src/main.rs index d15486a..02f70c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,31 +1,17 @@ -use std::fmt::write; - use osmpbf::*; fn main() { let reader = ElementReader::from_path( "/mnt/c/Users/dongho/Desktop/ekstrahMap/assets/south-korea-latest.osm.pbf", ); - - println!("Counting..."); - - match reader.expect("REASON").par_map_reduce( - |element| match element { - Element::Node(_) | Element::DenseNode(_) => (1, 0, 0), - Element::Way(_) => (0, 1, 0), - Element::Relation(_) => (0, 0, 1), - }, - || (0u64, 0u64, 0u64), - |a, b| (a.0 + b.0, a.1 + b.1, a.2 + b.2), - ) { - Ok((nodes, ways, relations)) => { - println!("Nodes: {nodes}"); - println!("Ways: {ways}"); - println!("Relations: {relations}"); + let mut nodes = 0_u64; + let _ = reader.expect("REASON").for_each(|element| { + if let Element::DenseNode(node) = element { + let lat: f64 = node.lat(); + let lon: f64 = node.lon(); + let id: i64 = node.id(); + println!("Node: {id}, Latitude: {lat}, Longitude: {lon}"); } - Err(e) => { - println!("{e}"); - std::process::exit(1); - } - } + }); + println!("Number of ways: {nodes}"); } diff --git a/src/main2.rs b/src/main2.rs new file mode 100644 index 0000000..d15486a --- /dev/null +++ b/src/main2.rs @@ -0,0 +1,31 @@ +use std::fmt::write; + +use osmpbf::*; + +fn main() { + let reader = ElementReader::from_path( + "/mnt/c/Users/dongho/Desktop/ekstrahMap/assets/south-korea-latest.osm.pbf", + ); + + println!("Counting..."); + + match reader.expect("REASON").par_map_reduce( + |element| match element { + Element::Node(_) | Element::DenseNode(_) => (1, 0, 0), + Element::Way(_) => (0, 1, 0), + Element::Relation(_) => (0, 0, 1), + }, + || (0u64, 0u64, 0u64), + |a, b| (a.0 + b.0, a.1 + b.1, a.2 + b.2), + ) { + Ok((nodes, ways, relations)) => { + println!("Nodes: {nodes}"); + println!("Ways: {ways}"); + println!("Relations: {relations}"); + } + Err(e) => { + println!("{e}"); + std::process::exit(1); + } + } +}