1use std::time::Instant;
2use boring_parser::{boring_structs_300::Boring300, parser::Parse, coordinate::GeoCoordinate};
3use boring_parser::transform::{JgdTransformer, SurveyStartDate};
4
5fn main() {
6 let xml_bytes = std::fs::read("107282 (1).xml").unwrap();
8 let (utf8, _, _) = encoding_rs::SHIFT_JIS.decode(&xml_bytes);
9 let xml_str = utf8.to_string();
10
11 let start = Instant::now();
13 let boring = Boring300::parse_from_str(&xml_str).unwrap();
14 println!("Parse: {:?}", start.elapsed());
15
16 let start = Instant::now();
18 let transformer = JgdTransformer::with_survey_date(
19 "params/TKY2JGD.par",
20 "params/patch_files",
21 SurveyStartDate::new(2010, 5, 15),
22 ).unwrap();
23 println!("Transformer init: {:?}", start.elapsed());
24
25 let start = Instant::now();
27 let loc = boring.geo_location();
28 let result = loc.to_wgs84(&transformer);
29 println!("Coordinate transform: {:?}", start.elapsed());
30 println!("Result: {:?}", result);
31
32 let start = Instant::now();
34 for _ in 0..100 {
35 let loc = boring.geo_location();
36 let _ = loc.to_wgs84(&transformer);
37 }
38 println!("100x transform: {:?}", start.elapsed());
39}