该技能用于在 iOS 17+ 的 SwiftUI 应用中构建地图与位置相关功能,主要围绕 MapKit 与 CoreLocation 的现代异步 API。主要能力包括:用 Map 视图配合 MapContentBuilder 添加 Marker、Annotation、MapPolyline、MapPolygon、MapCircle;用 MapCameraPosition 控制相机位置、视角与跟随用户位置;通过 .mapStyle() 与 .mapControls 配置样式和控件;用 selection 绑定处理地图选中。定位方面使用 CLLocationUpdate.liveUpdates() 异步流替代 CLLocationManagerDelegate,iOS 18+ 可用 CLServiceSession 管理授权,并用 CLMonitor 实现地理围栏。搜索使用 MKLocalSearchCompleter 做自动补全、MKLocalSearch 获取完整结果,输入需防抖(至少 300ms)。还涵盖地理编码(CLGeocoder,以及 iOS 26+ 的 MKGeocodingRequest / MKReverseGeocodingRequest)、路线与 ETA(MKDirections)、iOS 26+ 的骑行路线与 PlaceDescriptor。使用前需在 Info.plist 添加 NSLocationWhenInUseUsageDescription,并处理授权被拒、地理编码失败等情况。限制与注意事项:不要一开始就请求 always 权限;视图不可见时应取消定位任务以省电;CLMonitor 限制约 20 个条件;地标属性均为可选需安全解包。分类为编程与开发。
mapkit-location
编程与开发
更新于 10-15 21:12