SuperAPI AI 工具集

axiom-mapkit

测试与质量

查看项目

更新于 10-15 20:11

技能介绍

用途:在 iOS 应用中加入地图、标注/标记、地点搜索、路线导航,或排查地图显示异常与性能问题。也用于在 SwiftUI Map 与 MKMapView 之间做技术选型。

主要能力:

  1. 选型决策:目标 iOS 17+ 时,标准标记、相机控制、用户位置、形状覆盖、地图样式、选择与聚合优先用 SwiftUI Map;需要自定义瓦片覆盖、细粒度 delegate 回调或低于 iOS 17 时才用 UIViewRepresentable 包装 MKMapView。
  2. 常见反模式与修复:SwiftUI 视图体内创建标注(应移入模型,用 @State 或 @Observable)、MKMapView 不复用标注视图(应使用 dequeueReusableAnnotationView(withIdentifier:for:))、updateUIView 中无保护地 setRegion 导致无限循环、主线程同步地理编码、未按可见区域过滤标注、忽略 MKLocalSearch 的 resultTypes。
  3. 标注策略:少于 100 个可直接声明;100–1000 启用聚合(clusteringIdentifier);1000 以上服务端预聚合或按可见区域过滤,可用 onMapCameraChange(frequency: .onEnd) 配合区域范围判断。
  4. 搜索:实时自动补全用 MKLocalSearchCompleter,选中后再用 MKLocalSearch 取完整结果;程序化搜索用 naturalLanguageQuery,并配置 resultTypes 与 region。
  5. 路线:MKDirections.Request 设置起点、终点与 transportType,取 MKRoute 的画线 polyline、expectedTravelTime、distance、steps。
  6. 与 Core Location 集成:设置 showsUserLocation 或加 UserAnnotation() 会隐式请求定位授权,建议先显式请求授权再展示地图,iOS 17+ 可用 CLServiceSession。

使用方式:技能内含 SwiftUI Map 快速上手示例、搜索模型示例、路线计算与绘制示例、聚合实现,以及配套的技能引用 axiom-mapkit-ref、axiom-mapkit-diag、axiom-core-location。

限制与注意:资料未提供具体安装命令、价格或平台支持范围,暂未提供;示例主要面向 iOS/iPadOS,需注意 API 版本要求(如 SwiftUI Map 相关特性需 iOS 17+),MapKit 搜索存在 Apple 侧速率限制,应复用 completer 而非每次按键新建。