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 是我们首选的分发系统。
将 MapboxSearch 依赖项添加到您的 Package.swift 或使用 Xcode > Project settings > Package Dependencies 选项卡。
dependencies: [
.package(url: "https://github.com/mapbox/mapbox-search-ios.git")
]
$HOME/.netrc
,例如 /Users/victorprivalov/.netrc
)machine api.mapbox.com
login mapbox
password sk.ey_Your_Access_Token_With_Read_permission
要使用 CocoaPods 将最新预发布版本的 MapboxSearch
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'MapboxSearch', ">= 2.8.0", "< 3.0"
要使用 CocoaPods 将最新预发布版本的 MapboxSearchUI
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'MapboxSearchUI', ">= 2.8.0", "< 3.0"
设置用于 sdk 注册表访问的 .netrc 文件
$HOME/.netrc
,例如 /Users/victorprivalov/.netrc
)machine api.mapbox.com
login mapbox
password sk.ey_Your_Access_Token_With_Read_permission
按照 Carthage 快速入门 并在您的 Cartfile
中指定 MapboxSearch 依赖项
github "Mapbox/mapbox-search-ios" ~> 2.8.0
我们欢迎反馈和代码贡献!
如果您发现错误或想要请求功能,请打开一个 github issue。请使用适当的 issue 模板。
SDK 需要 Carthage,您可以使用 Homebrew 安装它。
brew -v
检查是否已安装 Homebrew。如果您没有 Homebrew,请在继续之前安装。brew update && brew bundle install
$HOME/.netrc
,例如 /Users/victorprivalov/.netrc
)machine api.mapbox.com
login mapbox
password sk.ey_Your_Access_Token_With_Read_permission
./scripts/install_git_hooks
设置提交钩子make dependencies
mapbox
或 .mapbox
的新文件,其中包含您的访问令牌内容。我们也支持仓库根文件夹中的 .mapbox
文件。MapboxSearchDemoApplication 将自动处理此密钥并将其插入到相应的位置。MapboxSearchDemoApplication
项目,然后为“MapboxSearchDemoApplication”目标选择“Info”选项卡。您可以在“Custom iOS Target Properties”部分中为 MBXAccessToken
密钥设置您的 accessToken。SearchEngine.init
和其他接受 accessToken
参数的初始化器。使用此方法可以动态传递您的密钥并实施密钥轮换计划。有助于创造积极环境的行为示例包括
我们建议阅读 Github 上关于撰写优秀 PR 的这篇博文。