USIGNormalizador
CABA 和 AMBA 地址规范服务的 iOS 客户端,使用 Swift 4 开发。
安装
Cocoapods
在项目的 Podfile
中
pod 'USIGNormalizador', '~> 2.0'
Carthage
在项目的 Cartfile
中
github "gcba/usig-normalizador-ios" ~> 2.0
方法
按街道搜索
根据搜索词返回一个按相关性排序的地址数组。
USIGNormalizador.search(query: <Nombre o parte del nombre de una calle>) { result, error in
// Do something
}
可选参数
excluding(字符串可选)
要从搜索中排除的地点,用逗号分隔。默认情况下,排除AMBA的所有地点(仅获取CABA的结果)。
USIGNormalizador.search(query: "Callao", excluding: nil) { result, error in
// Do something
}
maxResults(整数)
返回结果的最大数量。默认为10。
USIGNormalizador.search(query: "Callao", maxResults: 7) { result, error in
// Do something
}
includePlaces(布尔值)
是否在搜索中包含地点。默认为true。
USIGNormalizador.search(query: "Callao", includePlaces: false) { result, error in
// Do something
}
可选参数可以一起使用,也可以分开使用。
USIGNormalizador.search(query: "Callao", excluding: nil, maxResults: 7, includePlaces: false) { result, error in
// Do something
}
按坐标搜索
返回最接近经纬度的地址。
USIGNormalizador.location(latitude: <Una latitud>, longitude: <Una longitud>) { result, error in
// Do something
}
接口
允许通过街道或地点名称进行搜索。搜索接口控制器应由一个 UINavigationController
提供。
let searchController = USIGNormalizador.searchController()
let navigationController = UINavigationController(rootViewController: searchController)
searchController.delegate = self
present(navigationController, animated: true)
编辑
可以在显示控制器之前预加载一个搜索术语。
searchController.edit = "CALLAO AV. 123"
模式
有两种可选模式,可以单独或同时激活。
显示标记
在表格顶部添加一个包含 Map pin 图像和可配置文本的单元格。当点击它时,将执行委托的 didSelectPin
方法。通过实现委托的 shouldShowPin
方法使其返回 true
来激活。
不强制规范化
允许用户编写并选择一个不在搜索结果中的街道。显示一个包含输入搜索词的单元格在结果上方,当点击它时,将此值传递给 didSelectUnnormalizedAddress
方法。当委托的 shouldForceNormalization
方法返回 false
时激活。
委托
通过实现USIGNormalizadorControllerDelegate
协议的方法来配置搜索控制器。必须实现didSelectValue
方法;其他方法都是可选的。
shouldShowPin
是否显示带PIN的单元格。默认值是false
。
func shouldShowPin(_ searchController: USIGNormalizadorController) -> Bool {
return true
}
shouldForceNormalization
是否强制进行地址标准化。默认值是true
。
func shouldForceNormalization(_ searchController: USIGNormalizadorController) -> Bool {
return false
}
shouldIncludePlaces
是否在搜索中包括地点。默认值是true
。
func shouldIncludePlaces(_ searchController: USIGNormalizadorController) -> Bool {
return false
}
shouldShowDetails
是否显示每个地址的政党和国籍。默认值是false
。
func shouldShowDetails(_ searchController: USIGNormalizadorController) -> Bool {
return true
}
didSelectValue
在搜索结果中点击时执行。
func didSelectValue(_ searchController: USIGNormalizadorController, value: USIGNormalizadorAddress) {
// Do something
}
didSelectUnnormalizedAddress
当选择用户自定义编写的地址时执行。
func didSelectUnnormalizedAddress(_ searchController: USIGNormalizadorController, value: String) {
// Do something
}
didSelectPin
触摸到PIN的单元格时执行。
func didSelectPin(_ searchController: USIGNormalizadorController) {
// Do something
}
didCancelSelection
如果触摸到取消按钮。
func didCancelSelection(_ searchController: USIGNormalizadorController) {
// Do something
}
exclude
要排除的地点,用逗号分隔。默认值是AMBA地区的地点(只为显示CABA的结果)。
func exclude(_ searchController: USIGNormalizadorController) -> String {
return nil
}
maxResults
返回的最大结果数量。默认为10。
func maxResults(_ searchController: USIGNormalizadorController) -> Int {
return 7
}
pinImage
允许更改PIN的图标。
func pinImage(_ searchController: USIGNormalizadorController) -> UIImage! {
return UIImage(named: "MyIcon")
}
pinColor
应用于PIN图标的不透明颜色。默认颜色是UIColor.lightGray
。
func pinColor(_ searchController: USIGNormalizadorController) -> UIColor {
return UIColor.black
}
pinText
将显示在PIN旁边的文本。默认文本为"在地图上固定位置"
。
func pinText(_ searchController: USIGNormalizadorController) -> String {
return "Marcar en el mapa"
}
addressImage
允许更改地址的图标。
func addressImage(_ searchController: USIGNormalizadorController) -> UIImage! {
return UIImage(named: "MyIcon")
}
addressColor
将应用于地址图标的颜色。默认颜色是 UIColor.lightGray
。
func addressColor(_ searchController: USIGNormalizadorController) -> UIColor {
return UIColor.black
}
placeImage
允许更改地点的图标。
func placeImage(_ searchController: USIGNormalizadorController) -> UIImage! {
return UIImage(named: "MyIcon")
}
placeColor
将应用于地点图标的颜色。默认颜色是 UIColor.lightGray
。
func placeColor(_ searchController: USIGNormalizadorController) -> UIColor {
return UIColor.black
}
Localización
要使 取消
按钮显示为西班牙语,请确保在 app 的 Info.plist
中,Localization native development region
键的值是 es
。
API
USIGNormalizador.api
公开了一个Moya provider,可以直接调用USIG地址标准化服务。
许可协议
MIT License
Copyright (c) 2017+ Buenos Aires City Government
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.