微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使地图以用户输入的位置为中心?

如何解决如何使地图以用户输入的位置为中心?

我正在制作一个天气应用程序,其中一个功能是当用户搜索某个位置时,他们可以在地图上看到它的位置。如何使地图以该位置为中心?示例:搜索旧金山,地图显示旧金山。我是否需要以某种方式将名称转换为坐标,然后将其作为地图的输入,还是可以以更好的方式完成?

解决方法

我最近不得不这样做,这就是我解决的方法。首先,我使用 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 举报,一经查实,本站将立刻删除。