43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
/// Compute the mean latitude/longitude (center) of a set of coordinates.
|
|
pub fn mean_center(coords: &[(f64, f64)]) -> Option<(f64, f64)> {
|
|
if coords.is_empty() {
|
|
return None;
|
|
}
|
|
let (mut sum_lat, mut sum_lon) = (0.0, 0.0);
|
|
for &(lat, lon) in coords {
|
|
sum_lat += lat;
|
|
sum_lon += lon;
|
|
}
|
|
Some((sum_lat / coords.len() as f64, sum_lon / coords.len() as f64))
|
|
}
|
|
|
|
fn get_center_point(amenity: &str) -> Option<(f64, f64)> {
|
|
// TODO: Get POI's and finde center point.
|
|
unimplemented!();
|
|
|
|
return mean_center(nodes);
|
|
}
|
|
|
|
fn calc_final_point(
|
|
a: (f64, f64, f64),
|
|
b: (f64, f64, f64),
|
|
c: (f64, f64, f64),
|
|
) -> Option<(f64, f64)> {
|
|
// TODO: Calculate hidden place coords.
|
|
unimplemented!();
|
|
}
|
|
|
|
fn main() {
|
|
let (lat_a, lon_a) = get_center_point("bar").unwrap();
|
|
let (lat_b, lon_b) = get_center_point("atm").unwrap();
|
|
let (lat_c, lon_c) = get_center_point("taxi").unwrap();
|
|
|
|
let secret_hideout = calc_final_point(
|
|
// (lat, lon, dis)
|
|
(lat_a, lon_a, 0.6412652119499),
|
|
(lat_b, lon_b, 0.2822972577454),
|
|
(lat_c, lon_c, 0.9572772921063),
|
|
)
|
|
.unwrap();
|
|
}
|