Mapbox-macOS-SDK 0.16.0

Mapbox-macOS-SDK 0.16.0

许可证 BSD
发布最后发布2020年5月

Nguyễn MinhJason WrayMapbox 维护。




Mapbox macOS SDK

使用开源 Mapbox macOS SDK 将交互式、可缩放的地图放入您的本地 Cocoa 应用程序中。

  • Mapbox 拥有的 地图风格 和基于 OpenStreetMap矢量瓦片 可让您轻松开始。
  • 使用代码或通过 Mapbox Studio 可视化方式自定义地图的外观。
  • 高性能 OpenGL 渲染和多指手势让您用户满意。
  • 精心设计的、完整文档的 API 帮助您保持高效率。
  • 使用相同的样式和相似 API 在多个平台(包括 iOS)上进行开发。

Mapbox macOS SDK 与 macOS 10.10.0 及以上版本兼容,适用于使用 Objective-C、Swift、Interface Builder 或 AppleScript 开发的 Cocoa 应用程序。对于混合应用程序,请考虑使用 Mapbox GL JS

安装

安装 Mapbox macOS SDK 有三种方式

手动

  1. 从 GitHub 下载最新的 Mapbox macOS SDK 发布版 – 查找以“macos-”开头的版本。

  2. 打开项目编辑器,选择您的应用程序目标,然后转到“通用”选项卡。将 Mapbox.framework 拖动到“嵌入式二进制”部分。(不要将其拖动到“链接的框架和库”部分;Xcode 会自动将其添加那里。)在出现的表中,确保已选中“在需要时复制项目”,然后单击完成。

通过 Carthage

Mapbox macOS SDK 是一个仅限二进制的依赖项,因此您需要 Carthage 0.19 或以上版本。在您的 Cartfile 中指定此依赖项(以及可选的版本要求)

binary "https://mapbox.github.io/mapbox-gl-native/macos/Mapbox-macOS-SDK.json"

运行 carthage update 后,您将在 Carthage/Build/ 文件夹中找到 Mapbox.framework。按照 这些说明 将其集成到您的项目中。

通过 CocoaPods

创建包含以下规范的 Podfile

platform :osx, '10.10'

target 'TargetNameForYourApp' do
  pod 'Mapbox-iOS-SDK', '~> x.y'
end

其中 x.y 是当前版本。在终端中运行 pod install

用法

Mapbox 矢量瓦片需要 Mapbox 账户和 API 访问令牌。在项目编辑器中,选择应用程序目标,然后转到“信息”选项卡。在“Custom macOS Application Target Properties”部分下,将 MGLMapboxAccessToken 设置为您访问令牌。您可以从 Mapbox 账户页面 获取访问令牌。

然后,在 storyboard 或 XIB 中

  1. 将视图添加到您的视图控制器或窗口。
  2. 在身份检查器中,将视图的类设置为 MGLMapView
  3. MGLMapView 需要背景图层
  • 您可以通过选择窗口并在属性检查器中选择全尺寸内容查看来使窗口层叠。这使得地图视图可以重叠标题栏和工具栏。
  • 或者,如果您不希望整个窗口层叠,可以选择地图视图并检查查看效果检查器中的核心动画层部分。
  1. 将地图反馈项添加到帮助菜单中。(从对象库中将菜单项拖到主菜单 -> 帮助 -> 菜单。)标题为“改进此地图”或类似,并将其连接到First Responder的giveFeedback:操作。

如果您需要以编程方式操作地图视图

  1. 切换到助手编辑器。
  2. 导入Mapbox模块。
  3. 将地图视图连接到您的视图控制器类中的一个新出口。(在Interface Builder中将地图视图拖动到视图控制器实现中的有效位置。产生的出口声明可能看起来像这样
// ViewController.m
@import Mapbox;

@interface ViewController : NSViewController

@property (strong) IBOutlet MGLMapView *mapView;

@end
// ViewController.swift
import Mapbox

class ViewController: NSViewController {
    @IBOutlet var mapView: MGLMapView!
}
-- AppDelegate.applescript
script AppDelegate
    property parent : class "NSObject"
    property theMapView : missing value
end script

完整的API文档包含在此包中,在文档文件夹内,以及在线。Mapbox iOS SDK的API文档在线示例适用于Mapbox macOS SDK,略有不同,主要是不实现的特性,如用户位置跟踪。

Mapbox不支持macOS SDK的程度不如iOS SDK;但是,问题报告和合并请求当然是受欢迎的。