iOS中能否通过MKMapItem/MKLocalSearchCompleter获取地点类型?
关于用MKMapItem/MKLocalSearchCompleter获取地点类型的可行性
1. MKMapItem 完全可行
MKMapItem 自带的 pointOfInterestCategory 属性可以直接获取地点的POI分类,对应你图中显示的「Elementary School」这类地点类型。当你通过搜索、定位等方式拿到 MKMapItem 实例后,就能读取这个枚举值,再通过 localizedName 方法转换为对应语言的类型名称。
示例代码:
if let category = mapItem.pointOfInterestCategory { let typeName = category.localizedName // 返回对应语言的地点类型名称,如英文的"Elementary School" print(typeName) }
2. MKLocalSearchCompleter 间接可行
MKLocalSearchCompleter 的补全结果(MKLocalSearchCompletion)仅提供标题、副标题等基础信息,无法直接获取完整地点类型。但你可以基于补全结果做二次处理:
- 从补全结果的
title/subtitle中提取部分类型线索(可靠性较低); - 用补全结果的
identifier创建MKLocalSearch.Request,发起搜索拿到对应的 MKMapItem,再通过上述 MKMapItem 的方法获取地点类型。
总结
若要直接获取地点类型,优先使用 MKMapItem;若从补全流程出发,需结合 MKLocalSearch 间接获取。
内容的提问来源于stack exchange,提问作者goddamnyouryan
相关产品推荐
相关产品推荐

