如何解决从给定 MKMapView 的当前边界获取纬度/经度的大小 更新
Apple 开发人员文档谈到了获取当前显示的地图可见部分时的 "map points"。
什么是地图点?它与纬度/经度度数有何关系?
解决方法
什么是地图点?
来自 MKMapPoint 文档 -
如果您将地球的曲面投影到平面上,您将得到一个二维版本的地图,其中的经线看起来是平行的。此类地图通常用于一次性显示地球的整个表面。 MKMapPoint
数据结构表示该二维地图上的一个点。
地图点的实际单位与用于绘制 MKMapView
内容的底层单位相关联,但您无需直接担心这些单位。映射点主要是为了简化在曲面上使用坐标值会很复杂的计算。通过转换为地图点,您可以在平面上执行这些计算,这通常要简单得多,然后根据需要转换回来。 您可以使用 init(_:)
和坐标函数在坐标值和地图点之间进行映射。
将地图相关数据保存到文件时,应始终保存坐标值(纬度和经度)而不是地图点。
它与纬度/经度度数有何关系?
您可以使用 MKMapPoint
值创建新的 CLLocationCoordinate2D
实例(可以使用 latitude
和 longitude
值创建。)参见 - MKMapPoint.init(_ coordinate:)
对于 get the visible portion of the map that is currently displayed
部分,您可以使用 -
MKMapView
实例询问此信息
更新
以下是计算 latitude
和 longitude
的最小值/最大值的方法。
let region = mapView.region
let center = region.center
let span = region.span
let minLatitude = (center.latitude - span.latitudeDelta/2)
let maxLatitude = (center.latitude + span.latitudeDelta/2)
let minLongitude = (center.longitude - span.longitudeDelta/2)
let maxLongitude = (center.longitude + span.longitudeDelta/2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。