What's new in MapKit
Maps & Location 进阶 20m

MapKit 新特性

What's new in MapKit

2022年6月6日

在 Apple 官方观看视频

一句话判断

iOS 16 的 MapKit 带来了全新地图配置 API、透明建筑渲染、混合模式、可选中地图要素和 Look Around 内嵌——如果你的应用涉及地图展示,这是今年的必看内容。

这场 Session 讲了什么

MapKit 团队的 Eric 和 Yingxiu 系统介绍了 iOS 16 中 MapKit 的五项重大更新。自从 Apple Maps 推出全新地图和沉浸式 Look Around 体验以来,覆盖范围已经扩展到加拿大、多个欧洲国家和日本,去年还引入了包含车道标线、人行横道、自行车道的 3D 城市体验。今年 MapKit 把这些能力全部开放给了第三方开发者。

Session 分五个部分:全新地图配置 API、Overlay 改进(透明建筑)、Blend Mode 支持、Selectable Map Features API、以及 Look Around 视图的直接嵌入。

值得深挖的点

全新地图只需重新编译。用新版 SDK 重新编译应用,就能自动获得全新 Apple 地图体验,包括 3D 城市体验。对于大多数应用来说,一个 recompile 就够了。3D 城市体验需要 A12 及以上芯片的 iPhone/iPad,或 M1 及以上的 Mac。

Map Configuration API 取代旧属性。iOS 16 soft deprecate 了 MKMapView 上原有的配置属性,引入了 MKMapConfiguration 体系:Imagery(卫星图)、Hybrid(卫星图 + 地图要素)、Standard(全图形化地图)。每个配置类支持不同的属性组合——elevationStyle(flat/realistic)、emphasisStyle(default/muted)、POI 过滤、交通图层。新 API 确保你只能配置合法的选项组合,且支持原子性地切换配置。

透明建筑(Transparent Buildings)。当 overlay 层级设为 above roads 时,3D 建筑和树木会以半透明方式渲染,不再完全遮挡你的 overlay 内容。透明度随地图俯仰角度变化——俯视时建筑完全隐藏,倾斜时逐步变透明。这对路线规划和地理标注场景来说是很大的视觉提升。

Selectable Map Features API。新的 API 允许用户直接选中地图上的 POI、标注等要素,应用可以响应用户的选择行为。这让地图从”展示容器”变成了”可交互的信息界面”。

Look Around 嵌入。不再需要跳转到 Maps 应用,Look Around 街景视图可以直接嵌入到你的应用界面中,与地图并排展示。

代码片段

// 使用新的 Map Configuration API
let configuration = MKStandardMapConfiguration()
configuration.elevationStyle = .realistic    // 真实地形高程
configuration.emphasisStyle = .muted         // 降低地图对比度,突出自定义内容
configuration.pointOfInterestFilter = .excludingAll  // 隐藏所有 POI
configuration.showsTraffic = true            // 显示交通信息

mapView.setConfiguration(configuration, animated: true)

// Overlay 配置
let renderer = MKPolygonRenderer(overlay: polygon)
renderer.fillColor = UIColor.blue.withAlphaComponent(0.3)
renderer.strokeColor = .blue
// 在 iOS 16 中,above roads 是新的默认层级
// 建筑会自动变透明以避免遮挡 overlay

最佳实践

  • Overlay 层级选择:大多数场景用 above roads(新的默认值),above labels 只在你完全不想跟地图交互时使用
  • 想让自定义内容突出时,优先考虑 muted emphasis style 或 blend mode,而非强制使用 above labels
  • 在 realistic terrain 上添加 overlay 时,MapKit 会自动切换到 flat 地形,移除最后一个 overlay 后自动恢复
  • 测试 3D 城市体验和 flat fallback 两种表现,确保在所有设备上都有良好体验
  • 3D 城市体验持续扩展新城市,关注 Apple 的功能可用性页面获取最新列表

还有什么值得关注

  • Blend Mode 支持让 overlay 与地图底图产生混合效果,类似于图像编辑中的图层混合模式
  • tvOS 和 macOS 也支持新地图配置 API,注意多平台适配
  • M1 Mac 上可以通过 Xcode 模拟不同体验级别来测试
  • 新地图在全球范围逐步推出,注意处理 3D 城市体验不可用时的降级方案
WWDC 2022