CircleCI

what3words w3w-swift-components

概述

一个用于 what3words UI 组件的 Swift 库。 此 Swift 组件包提供了一种直接的方式,可以将 what3words 界面功能(例如自动建议文本字段、地图视图或 what3words 网格线)添加到您的应用程序中。

它包括:

注意

安装

身份验证

要使用此库,您需要一个 what3words API 密钥,您可以在此处注册。 如果您希望使用语音 API 调用,则必须在您的 帐户中添加语音 API 计划。

Swift Package Manager

您可以使用 Swift Package Manager 进行安装,方法是将以下 URL 添加到项目设置下的 Swift Packages 中

https://github.com/what3words/w3w-swift-components.git

导入库

import W3WSwiftApi
import W3WSwiftComponents
import CoreLocation

注意

如果您在设备上使用语音 API,则应在 Info.plist 中包含麦克风权限

组件

自动建议文本字段

W3WAutoSuggestTextField 是一个 UITextField,它将在用户输入文本时建议三字地址。 可选地,还有一个语音识别选项。

这符合我们的 W3WAutoSuggestTextFieldProtocol。 因此,接口记录在 Documentation/Autosuggest/autosuggest.md


自动建议搜索控制器

W3WAutoSuggestSearchController 是一个 UISearchController,它将在用户输入文本时建议三字地址。 这允许将此功能嵌入到诸如 UINavigationController 之类的东西中。 可选地,还有一个语音识别选项。

这符合我们的 W3WAutoSuggestTextFieldProtocol。 因此,接口记录在 Documentation/Autosuggest/autosuggest.md

地图助手

地图助手允许您轻松地将 what3words 地图功能集成到现有地图中。

W3WMapHelper 符合 W3WMapViewProtocol。 可以在 Documentation/Map/map.md 找到它的函数参考。

let api = What3WordsV4(apiKey: "YourApiKey")
let mapHelper = W3WMapHelper(api, map: yourMKMapView)

如果您的应用程序已经有一个带有地图的 ViewController,W3WMapHelper 提供了便捷的函数添加到您的 MKMapViewDelegate 函数中,以便在您的地图上显示 what3words 网格和图钉注释。 上面链接的示例显示了您将调用放置的位置,以及如何实例化 W3WMapHelper

地图视图

W3WMapView 符合 W3WMapViewProtocol。 可以在 Documentation/Map/map.md 找到它的函数参考。

let api = What3WordsV4(apiKey: "YourApiKey")
let mapview = W3WMapView(api)

我们创建了 W3WMapView 作为一种快速简便的方式,可以快速将 what3words 功能集成到您的应用程序中。

只需将您的 MKMapView 替换为 W3WMapView,您的应用程序的行为应该与以前相同,除了它会绘制 what3words 网格线,并且有一些新的可用函数,例如 addMarker(at: "filled.count.soap")

它派生自 MKMapView,但 Apple 不建议从 MKMapView 派生新对象,可能是因为它的接口将来可能会发生变化,因此请将其视为一种快速简便的方式,可以将功能集成到您的应用程序中。

更好的方法是使用 W3WMapHelper,它被设计为完美地适应您的 MKMapViewDelegate 符合类,可能是一个 UIViewController

地图组件

W3WMapViewController 符合 W3WMapViewProtocol。 可以在 Documentation/Map/map.md 找到它的函数参考。

let api = What3WordsV4(apiKey: "YourApiKey")
let vc = W3WMapViewController(api)

这演示了 W3WMapViewController,它是一个高级组件,具有易于使用的 what3words 功能。

如果您的应用程序中没有地图,并且想要快速包含一个具有某些默认行为的地图,那么这个可能适合您。

设置

测量

这些组件中的测量系统会自动设置为用户的偏好设置或区域设置,但您可以将其覆盖为 .metric.imperial

W3WSettings.measurement = .metric

本地化

W3WAutosuggest 组件已被翻译成大约 50 种语言,并且这些语言的 Localizable.strings 文件位于此包的资源中。 为了使它们能够工作,与任何 iOS 本地化设置一样,请确保在项目设置的 Info -> Localizations 下添加您想要使用的语言。