Skip to content

Commit

Permalink
fix DefaultFinder auto nearby search
Browse files Browse the repository at this point in the history
  • Loading branch information
ringsaturn committed Apr 12, 2024
1 parent 1fa5059 commit 2afeefb
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,21 @@ impl DefaultFinder {
/// ```
#[must_use]
pub fn get_tz_name(&self, lng: f64, lat: f64) -> &str {
let fuzzy_name = self.fuzzy_finder.get_tz_name(lng, lat);
if !fuzzy_name.is_empty() {
return fuzzy_name;
for &dx in &[0.0, -0.001, 0.001] {
for &dy in &[0.0, -0.001, 0.001] {
let dlng = dx + lng;
let dlat = dy + lat;
let fuzzy_name = self.fuzzy_finder.get_tz_name(dlng, dlat);
if !fuzzy_name.is_empty() {
return fuzzy_name;
}
let name = self.finder.get_tz_name(dlng, dlat);
if !name.is_empty() {
return name;
}
}
}
self.finder.get_tz_name(lng, lat)
""
}

/// ```rust
Expand Down
4 changes: 4 additions & 0 deletions tests/default.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ mod tests {
assert_eq!(finder.get_tz_name(-4.5706, 46.2747), "Etc/GMT");
assert_eq!(finder.get_tz_name(-73.7729, 38.3530), "Etc/GMT+5");
assert_eq!(finder.get_tz_name(114.1594, 22.3173), "Asia/Hong_Kong");

// Shenzhen actually, but we used a simplified polygon data.
assert_eq!(finder.get_tz_name(114.0668, 22.5153), "Asia/Hong_Kong");

assert_eq!(
finder.get_tz_name(12.452_899_553_691_935, 41.903_699_636_969_634),
"Europe/Vatican"
Expand Down

0 comments on commit 2afeefb

Please sign in to comment.