2026-09-18 09:03:51 +02:00
|
|
|
#[derive(Debug, Default)]
|
|
|
|
|
pub struct Link {
|
|
|
|
|
pub href: String,
|
|
|
|
|
pub text: Option<String>,
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-21 23:49:57 +02:00
|
|
|
#[derive(Debug, Default, Clone, Copy)]
|
2026-09-18 09:03:51 +02:00
|
|
|
pub struct LngLat {
|
|
|
|
|
pub lng: f64,
|
|
|
|
|
pub lat: f64,
|
|
|
|
|
}
|
2026-09-20 13:58:27 +02:00
|
|
|
|
2026-09-24 20:55:30 +02:00
|
|
|
#[derive(Debug)]
|
2026-09-20 13:58:27 +02:00
|
|
|
pub struct LngLatBounds {
|
|
|
|
|
pub sw: LngLat,
|
|
|
|
|
pub ne: LngLat,
|
|
|
|
|
}
|
2026-09-24 20:55:30 +02:00
|
|
|
|
|
|
|
|
impl Default for LngLatBounds {
|
|
|
|
|
fn default() -> Self {
|
|
|
|
|
Self {
|
|
|
|
|
sw: LngLat {
|
|
|
|
|
lng: 180.0,
|
|
|
|
|
lat: 90.0,
|
|
|
|
|
},
|
|
|
|
|
ne: LngLat {
|
|
|
|
|
lng: -180.0,
|
|
|
|
|
lat: -90.0,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl LngLatBounds {
|
|
|
|
|
pub fn extend(&mut self, coordinates: LngLat) {
|
|
|
|
|
self.sw.lng = self.sw.lng.min(coordinates.lng);
|
|
|
|
|
self.sw.lat = self.sw.lat.min(coordinates.lat);
|
|
|
|
|
self.ne.lng = self.ne.lng.min(coordinates.lng);
|
|
|
|
|
self.ne.lat = self.ne.lat.min(coordinates.lat);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn merge(&mut self, other: &LngLatBounds) {
|
|
|
|
|
self.sw.lng = self.sw.lng.min(other.sw.lng);
|
|
|
|
|
self.sw.lat = self.sw.lat.min(other.sw.lat);
|
|
|
|
|
self.ne.lng = self.ne.lng.min(other.ne.lng);
|
|
|
|
|
self.ne.lat = self.ne.lat.min(other.ne.lat);
|
|
|
|
|
}
|
|
|
|
|
}
|