如何解决如何使地图以用户输入的位置为中心?
我正在制作一个天气应用程序,其中一个功能是当用户搜索某个位置时,他们可以在地图上看到它的位置。如何使地图以该位置为中心?示例:搜索旧金山,地图显示旧金山。我是否需要以某种方式将名称转换为坐标,然后将其作为地图的输入,还是可以以更好的方式完成?
解决方法
我最近不得不这样做,这就是我解决的方法。首先,我使用 MapKit API 进行自然语言查询:
let request = MKLocalSearch.Request()
request.naturalLanguageQuery = sender.stringValue
let searchRequest = MKLocalSearch(request: request)
searchRequest.start(completionHandler: { response,error in
DispatchQueue.main.async {
self.results = response.mapItems
// Present the results...
}
})
然后一旦选择了一个项目,您应该能够使用它来居中地图:
if let circularRegion = mapItem.placemark.region as? CLCircularRegion {
let coordinateRegion = MKCoordinateRegion(center: circularRegion.center,latitudinalMeters: circularRegion.radius * 2,longitudinalMeters: circularRegion.radius * 2)
mapView.setRegion(coordinateRegion,animated: true)
}
我相信您会想要稍微调整居中行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。