#[derive(Debug, Clone, Copy, PartialEq)]
pub struct ElevationSample {
pub latitude_deg: f64,
pub longitude_deg: f64,
pub elevation_m: f64,
}
pub fn sample_dem(latitude_deg: f64, longitude_deg: f64) -> ElevationSample {
let monad_regio_bias =
if (-40.0..=-15.0).contains(&latitude_deg) && (30.0..=80.0).contains(&longitude_deg) {
-1_500.0
} else {
0.0
};
let cantaloupe_bias =
if (20.0..=50.0).contains(&latitude_deg) && (270.0..=330.0).contains(&longitude_deg) {
800.0
} else {
0.0
};
let wave = latitude_deg.to_radians().sin() * 300.0 + longitude_deg.to_radians().cos() * 200.0;
ElevationSample {
latitude_deg,
longitude_deg,
elevation_m: monad_regio_bias + cantaloupe_bias + wave,
}
}