IIDadata
此软件包提供对 Dadata 地址建议和反向地理编码 API 的访问权限。
基本用法。
try! DadataSuggestions
.shared(
apiKey: "<# Dadata API token #>"
).suggestAddress(
"Пенза"
completion: { r in
switch r {
case .success(let v):
print(v)
case .failure(let e):
print(e)
}
}
)
有大量的其他初始化选项
从使用显式 API 令牌进行初始化开始。
let dadata = DadataSuggestions(apiKey: "<# Dadata API token #>")
通过从 Info.plist 中读取 API 令牌进行初始化。但如果缺失可能会抛出错误。
let dadata = try? DadataSuggestions()
甚至可以使用检查网络连接的方式进行初始化。但是这个初始化不应该在主线程上调用,因为它可能会因为向服务器发送阻塞请求而花费较长时间。如果不可能连接或者请求超时,则抛出错误。
DispatchQueue.global(qos: .background).async {
let dadata = try? DadataSuggestions(apiKey: "<# Dadata API token #>", checkWithTimeout: 15)
}
无论您如何初始化,您还可以进行更多与该库相关的操作
基本地址建议请求仅在 FIAS 数据库中搜索:匹配项较少,提供地址数据仅限于状态。
dadata?.suggestAddressFromFIAS("Тверская обл, Пеновский р-н, деревня Москва"){ print( try? $0.get().suggestions ) }
基本地址建议请求将 KLADR 或 FIAS ID 作为查询参数查找附加数据。
dadata?.suggestByKLADRFIAS("9120b43f-2fae-4838-a144-85e43c2bfb29"){ print( try? $0.get().suggestions ) }
但是可以通过提供约束和/或设置过滤来创建更复杂的查询。
var constraint = AddressQueryConstraint()
constraint.region = "Приморский"
constraint.city = "Владивосток"
constraint.country_iso_code = "RU"
constraint.region_iso_code = "RU-PRI"
dadata?.suggestAddress(
"Gogolya 9",
resultsCount: 5,
language: .en,
constraints: [constraint],
regionPriority: nil,
upperScaleLimit: .street,
lowerScaleLimit: .house,
trimRegionResult: false,
completion: completion
)
或者手动构建 AddressSuggestionQuery
。注意在这个示例中,它是一个使用 FIAS ID 而不是自由文本创建的查询。
let q = AddressSuggestionQuery("9120b43f-2fae-4838-a144-85e43c2bfb29", ofType: .findByID)
q.resultsCount = 1
q.language = .en
dadata?.suggestAddress(q){ try? $0.get().suggestions?.forEach{ print($0) } }
此外,还提供反向地理编码功能。
try? dadata?.reverseGeocode(query: "52.2620898, 104.3203629",
delimeter: ",",
resultsCount: 1,
language:"ru",
searchRadius: 100){ r in
let v = try? r.get()
if let s = v?.suggestions, s.count > 0{
print("\(s[0].value!): LAT#\(s[0].data!.geoLat!) @ LON#\(s[0].data!.geoLon!)")
}
}
文档
项目文档可在此处找到:文档链接。
示例
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
。
安装
IIDadata 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'IIDadata'
或者使用 Swift PM。将以下行添加到您的 Package.swift 文件中的依赖项部分
.package(url: "https://github.com/illabo/IIDadata.git", from: "0.2.0")
其他
预提交和提交后钩子,用于在发布分支上提交时自动生成文档并从 Podspec 版本标签创建标签
许可
IIDadata 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。