我正在尝试使用使用 CLLocationManager 返回的坐标来查看它们是否与任何本地企业非常匹配 - 例如,如果我碰巧站在星巴克,我希望我的应用程序根据我的坐标建议我站着在星巴克。如果我在星巴克外 20 米处,但它是离我所站最近的地址,我希望它建议“星巴克”。
我可以返回 CLPlacemarks 没问题,但它们包含的信息不包含任何地方的公司名称。我在英国,例如,位于伦敦格洛斯特路的 Nando's 的地址是“170 Gloucester Road, London, SW7 4ST”。我可以在 CLPlacemark 信息中返回 170 Gloucester Road, London, SW7 4ST 没问题,但它没有提到 Nando's。
我在各种帖子中读到信息可能在名称属性、感兴趣的区域甚至格式化的地址属性中,但我在伦敦市中心的广泛测试表明,无论如何在英国并非如此。即使在美国,“Apple Inc”也仅在 1 Infinite Loop 之前的地址格式化地址属性中提及。
我尝试通过使用 CLLocation 获取用户的坐标然后将它们用作程序化 MapKit 搜索的基础来完成此操作 - 这只是再次返回地址,而不是公司名称。
还对 Apple Maps 应用程序进行了一些最终用户测试,否则我是该应用程序的忠实粉丝,如果通常在本地搜索例如“酒吧”、“餐厅”,它似乎返回相当不完整的结果。包括一些当地的地方,其他地方不包括在内,有时结果包含相当远的地方,即使我知道附近还有更多的餐馆。
我很快得出结论,实现我想要的唯一方法是使用 Google Places API,出于多种原因,我希望避免这种情况,尤其是我在 iOS 编程方面相当缺乏经验(顺便说一句,在 Swift 中......)
如果有人可以明确建议在 Mapkit 中无法本地执行此操作并且我需要使用 Google Places API,那么至少我知道,并且可以继续使用它 - 但如果有办法,我会最感谢知道它是什么...
提前致谢!