Библиотека Swift для компонентов пользовательского интерфейса What3words. Этот пакет компонентов Swift предоставляет простой способ добавить в ваше приложение функциональные возможности интерфейса What3word, такие как автозаполнение текстовых полей, представление карты или линии сетки What3words.
Он включает в себя:
Чтобы использовать эту библиотеку, вам понадобится ключ API What3words, который можно зарегистрировать здесь. Если вы хотите использовать вызовы Voice API, вам необходимо добавить план Voice API в свою учетную запись.
Вы можете установить с помощью Swift Package Manager, добавив URL-адрес ниже в Swift Packages в настройках вашего проекта:
https://github.com/what3words/w3w-swift-components.git
Импортируйте библиотеки:
import W3WSwiftApi
import W3WSwiftComponents
import CoreLocation
Если вы используете Voice API на устройстве, вам следует включить разрешения микрофона в свой Info.plist:
W3WAutoSuggestTextField
— это UITextField
, который предлагает три адреса слов при вводе текста пользователем. Опционально есть опция распознавания голоса.
Это соответствует нашему W3WAutoSuggestTextFieldProtocol
. Таким образом, интерфейс документирован в Documentation/Autosuggest/autosuggest.md.
W3WAutoSuggestSearchController
— это UISearchController
, который предлагает три адреса слов при вводе текста пользователем. Это позволяет встраивать эту функциональность в такие вещи, как UINavigationController
. Опционально есть опция распознавания голоса.
Это соответствует нашему W3WAutoSuggestTextFieldProtocol
. Таким образом, интерфейс документирован в Documentation/Autosuggest/autosuggest.md.
Map Helper позволяет легко интегрировать функции карты 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, обязательно добавьте языки, которые вы хотите использовать, в настройках вашего проекта в разделе «Информация» -> «Локализации» .