iOS MapKit能否获取地点评价、联系方式等扩展信息?
关于MapKit获取商家富信息的问题
先帮你把已实现的地址获取代码格式化好:
guard let firstPlacemark = placemarks.first, let addressDictionary = firstPlacemark.addressDictionary else { return } // let street = addressDictionary["Street"] // let city = addressDictionary["City"] // let state = addressDictionary["State"] // let zip = addressDictionary["ZIP"] print(addressDictionary.description) if let array = addressDictionary["FormattedAddressLines"] as? [Any] { let address = array.map { "\($0)" }.joined(separator: ",\n") print("Address : \(address)") }
针对你想获取Apple Maps里展示的评价、联系方式、图片这类额外信息的需求,我来梳理下可行方案:
原生iOS API的局限
首先得明确:MapKit本身并没有开放API让开发者直接获取商家的评价、图片这类富媒体信息。你当前用到的CLPlacemark/MKPlacemark仅提供基础的地址结构化数据,Apple Maps里的那些商家详情属于Apple私有数据库内容,没有对外公开调用接口。
可行的第三方方案
既然你明确不使用Google API,TripAdvisor的API确实是个合适的选择:
- 它能提供商家的联系方式、用户评价、实拍图片、营业时间等完整信息,完全覆盖你的需求
- 申请API密钥后,你可以通过商家名称、坐标等维度检索,获取对应的富数据
除了TripAdvisor,你也可以考虑Yelp Fusion API这类同类型服务,但TripAdvisor的全球数据覆盖度和内容丰富度更适配这类场景。
注意事项
不管选用哪个第三方API,都需要:
- 前往对应平台申请开发者账号和API密钥
- 严格遵守平台的使用条款,比如数据展示规范、调用频率限制等
- 做好API请求的错误处理,比如网络异常、返回数据为空的场景
内容的提问来源于stack exchange,提问作者Abhishek Thapliyal
相关产品推荐
相关产品推荐

