2 个版本
0.1.1 | 2019年1月24日 |
---|---|
0.1.0 | 2019年1月24日 |
#213 在 地理空间
30KB
515 行
城市拼写检查
此crate提供了一个库,使用具有可选距离权重的模糊搜索评分系统对城市名称进行拼写修正。
这意味着如果您提供当前的GPS坐标,则建议的拼写修正结果在评分每个潜在匹配时会充分考虑您的当前位置。
目前仅支持美国和加拿大,正在尽快扩展到其他国家。
设置
要使用此库,只需将 city-spellcheck
添加到您的 Cargo.toml
文件中
[dependencies]
city-spellcheck = "0.1.0"
现在您可以使用了
use city_spellcheck::*;
要查看使用此库的非常简单的RESTful API(只有一个路由),请查看 City-Spellcheck Web Api
示例用例
use city_spellcheck::*;
let mut cities = CityData::new();
cities
.populate_from_file("data/cities_canada-usa-filtered.csv")
.unwrap();
let london = Coordinate::new(42.98339, -81.23304);
let results = cities.search("London", Some(london));
assert_eq!(
format!("{:?}", results),
"[FuzzyResult { city: \"London, ON, CA\", latitude: 42.98339, longitude: -81.23304, score: 1.0 }, FuzzyResult { city: \"London, OH, US\", latitude: 39.88645, longitude: -83.44825, score: 0.6252391 }, FuzzyResult { city: \"London, KY, US\", latitude: 37.12898, longitude: -84.08326, score: 0.6250727 }, FuzzyResult { city: \"Lemont, IL, US\", latitude: 41.67364, longitude: -88.00173, score: 0.52094036 }, FuzzyResult { city: \"Brant, ON, CA\", latitude: 43.1334, longitude: -80.34967, score: 0.5208334 }]");
请探索 文档 了解更多信息。几乎所有有用的方法都在 CityData 结构中。
依赖项
~8MB
~176K SLoC