This commit is contained in:
Alexey 2025-11-26 19:47:49 +03:00
commit c95a912577

View file

@ -1,4 +1,4 @@
use byteorder::{LittleEndian, WriteBytesExt}; use byteorder::{BigEndian, LittleEndian, WriteBytesExt};
use clap::Parser; use clap::Parser;
use std::{error::Error, fs::{read_to_string, File}, path::PathBuf}; use std::{error::Error, fs::{read_to_string, File}, path::PathBuf};
use geotiff::GeoTiff; use geotiff::GeoTiff;
@ -47,12 +47,12 @@ pub fn parse_geotiff(args: Args) -> Result<(), Box<dyn Error>> {
// f32 lat_per_pixel // f32 lat_per_pixel
// u32 raster_width // u32 raster_width
// u32 raster_height // u32 raster_height
buffer.write_f32::<LittleEndian>(min_lon as f32)?; buffer.write_f32::<BigEndian>(min_lon as f32)?;
buffer.write_f32::<LittleEndian>(min_lat as f32)?; buffer.write_f32::<BigEndian>(min_lat as f32)?;
buffer.write_f32::<LittleEndian>(tfw[0] as f32)?; buffer.write_f32::<BigEndian>(tfw[0] as f32)?;
buffer.write_f32::<LittleEndian>(tfw[3] as f32)?; buffer.write_f32::<BigEndian>(tfw[3] as f32)?;
buffer.write_u32::<LittleEndian>(geotiff.raster_width as u32)?; buffer.write_u32::<BigEndian>(geotiff.raster_width as u32)?;
buffer.write_u32::<LittleEndian>(geotiff.raster_height as u32)?; buffer.write_u32::<BigEndian>(geotiff.raster_height as u32)?;
// Body: u16 height // Body: u16 height
for x in 0..geotiff.raster_width { for x in 0..geotiff.raster_width {
@ -63,7 +63,7 @@ pub fn parse_geotiff(args: Args) -> Result<(), Box<dyn Error>> {
.get_value_at::<i16>(&Coord {x: lon, y: lat}, 0) .get_value_at::<i16>(&Coord {x: lon, y: lat}, 0)
.unwrap_or(0); .unwrap_or(0);
let bufheight = if height >= 0 {height as u16} else {0u16}; let bufheight = if height >= 0 {height as u16} else {0u16};
buffer.write_u16::<LittleEndian>(bufheight)?; buffer.write_u16::<BigEndian>(bufheight)?;
println!("Written {}%", (x as f64 * 100 as f64 / geotiff.raster_width as f64) as u8); println!("Written {}%", (x as f64 * 100 as f64 / geotiff.raster_width as f64) as u8);
} }
} }