CircleCI Swift version iOS version Xcode version swift-doc

Mapbox Search SDK for iOS

Latest Pre-Release

Latest Release

目录

概述

Mapbox Search SDK 是一款开发者工具包,用于在移动设备上添加位置搜索功能。该 SDK 拥有与 Mapbox Search API 相同的速度和规模,专为按需和本地搜索用例而构建,例如网约车、外卖和门店查找应用。无论您的用户是在全球地图上的海量数据中查找地点,还是查找几英里外某个场所的精确位置,Search SDK 都为全球各个国家/地区提供位置搜索,并支持多种不同的语言。

以前,在您的应用程序中实现搜索功能需要对每个 API 请求进行自定义调整,以设置语言、位置偏向和结果类型。没有预构建的 UI,用户也无法查看其搜索历史记录或保存收藏夹。

Mapbox Search SDK 允许您将预先调整好的搜索功能直接添加到您的应用程序中,从而消除 API 配置的复杂性,同时仍然让您能够控制自定义。它附带一个可选的 UI 框架,或者您可以使用核心库通过您自己的 UI 元素构建完全自定义的实现。Search SDK 预配置了自动完成、本地搜索偏向,并包含新功能,如类别搜索、搜索历史记录和搜索收藏夹。

文档

您可以在 docs.mapbox.com 上找到更多文档

要求

主要功能

快速入门

您可以使用 Swift Package Manager、Cocoapods 或 Carthage 安装 MapboxSearch 和/或 MapboxSearchUI 包。Swift Package Manager 是我们首选的分发系统。

Swift Package Manager

将 MapboxSearch 依赖项添加到您的 Package.swift 或使用 Xcode > Project settings > Package Dependencies 选项卡。

dependencies: [
    .package(url: "https://github.com/mapbox/mapbox-search-ios.git")
]

Cocoapods

  1. 设置用于 sdk 注册表访问的 .netrc 文件
    1. 在用户主目录中创建 .netrc 文件 ($HOME/.netrc,例如 /Users/victorprivalov/.netrc)
    2. 文件内容
    machine api.mapbox.com
    login mapbox
    password sk.ey_Your_Access_Token_With_Read_permission
    
MapboxSearch

要使用 CocoaPods 将最新预发布版本的 MapboxSearch 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

pod 'MapboxSearch', ">= 2.8.0", "< 3.0"
MapboxSearchUI

要使用 CocoaPods 将最新预发布版本的 MapboxSearchUI 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

pod 'MapboxSearchUI', ">= 2.8.0", "< 3.0"

Carthage

  1. 设置用于 sdk 注册表访问的 .netrc 文件

    1. 在用户主目录中创建 .netrc 文件 ($HOME/.netrc,例如 /Users/victorprivalov/.netrc)
    2. 文件内容
    machine api.mapbox.com
    login mapbox
    password sk.ey_Your_Access_Token_With_Read_permission
    
  2. 按照 Carthage 快速入门 并在您的 Cartfile 中指定 MapboxSearch 依赖项

github "Mapbox/mapbox-search-ios" ~> 2.8.0

贡献

我们欢迎反馈和代码贡献!

如果您发现错误或想要请求功能,请打开一个 github issue。请使用适当的 issue 模板。

开发

SDK 需要 Carthage,您可以使用 Homebrew 安装它。

  1. 通过运行 brew -v 检查是否已安装 Homebrew。如果您没有 Homebrew,请在继续之前安装
  2. 更新 Homebrew 数据以安装包括 Carthage(v0.38 或更高版本)在内的最新工具版本
    • brew update && brew bundle install
  3. 设置用于 sdk 注册表访问的 .netrc 文件
    1. 在用户主目录中创建 .netrc 文件 ($HOME/.netrc,例如 /Users/victorprivalov/.netrc)
    2. 文件内容
    machine api.mapbox.com
    login mapbox
    password sk.ey_Your_Access_Token_With_Read_permission
    
  4. 使用 ./scripts/install_git_hooks 设置提交钩子
  5. 构建依赖项:make dependencies
  6. Mapbox API 需要 Mapbox 帐户和访问令牌。从 Mapbox 帐户页面获取访问令牌。要运行 Demo,您可以通过不同的方式提供令牌
    1. 在您的主目录中创建一个名为 mapbox.mapbox 的新文件,其中包含您的访问令牌内容。我们也支持仓库根文件夹中的 .mapbox 文件。MapboxSearchDemoApplication 将自动处理此密钥并将其插入到相应的位置。
    2. 打开 Workspace,选择 MapboxSearchDemoApplication 项目,然后为“MapboxSearchDemoApplication”目标选择“Info”选项卡。您可以在“Custom iOS Target Properties”部分中为 MBXAccessToken 密钥设置您的 accessToken。
  7. 或者,您可以将您的 accessToken 作为参数提供给 SearchEngine.init 和其他接受 accessToken 参数的初始化器。使用此方法可以动态传递您的密钥并实施密钥轮换计划。

行为准则

我们的标准

有助于创造积极环境的行为示例包括

我们建议阅读 Github 上关于撰写优秀 PR 的这篇博文

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅仓库上的标签