pub struct FuzzyFinder { /* private fields */ }Expand description
FuzzyFinder blazing fast for most places on earth, use a preindex data.
Not work for places around borders.
FuzzyFinder store all preindex’s tiles data in a HashMap,
It iterate all zoom levels for input’s longitude and latitude to build
map key to to check if in map.
It’s is very fast and use about 400ns to check if has preindex.
It work for most places on earth and here is a quick loop of preindex data:

Implementations§
Source§impl FuzzyFinder
impl FuzzyFinder
pub fn from_pb(tzs: PreindexTimezones) -> Self
Sourcepub fn get_tz_name(&self, lng: f64, lat: f64) -> &str
pub fn get_tz_name(&self, lng: f64, lat: f64) -> &str
Retrieves the time zone name for the given longitude and latitude.
§Arguments
lng- Longitudelat- Latitude
§Example:
use tzf_rs::FuzzyFinder;
let finder = FuzzyFinder::new();
assert_eq!("Asia/Shanghai", finder.get_tz_name(116.3883, 39.9289));§Panics
- Panics if
lngorlatis out of range. - Panics if
lngorlatis not a number.
pub fn get_tz_names(&self, lng: f64, lat: f64) -> Vec<&str>
Sourcepub fn data_version(&self) -> &str
pub fn data_version(&self) -> &str
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new, empty FuzzyFinder.
use tzf_rs::FuzzyFinder;
let finder = FuzzyFinder::default();Sourcepub fn to_geojson(&self) -> BoundaryFile
pub fn to_geojson(&self) -> BoundaryFile
Convert the FuzzyFinder’s preindex data to GeoJSON format.
This method generates polygons for each tile in the preindex, representing the geographic bounds of each tile.
Returns a BoundaryFile (FeatureCollection) containing all timezone tile polygons.
§Example
use tzf_rs::FuzzyFinder;
let finder = FuzzyFinder::new();
let geojson = finder.to_geojson();
let json_string = geojson.to_string();Sourcepub fn get_tz_geojson(&self, timezone_name: &str) -> Option<FeatureItem>
pub fn get_tz_geojson(&self, timezone_name: &str) -> Option<FeatureItem>
Convert a specific timezone’s preindex data to GeoJSON format.
Returns Some(FeatureItem) if the timezone is found in the preindex, None otherwise.
§Arguments
timezone_name- The timezone name to export (e.g., “Asia/Tokyo”)
§Example
use tzf_rs::FuzzyFinder;
let finder = FuzzyFinder::new();
if let Some(feature) = finder.get_tz_geojson("Asia/Tokyo") {
let json_string = feature.to_string();
println!("Found {} tiles for timezone", feature.geometry.coordinates.len());
}