考虑缩放级别的两点之间的 CLLocationCoordinate2D 距离

Posted

技术标签:

【中文标题】考虑缩放级别的两点之间的 CLLocationCoordinate2D 距离【英文标题】:CLLocationCoordinate2D distance between two points considering zoom level 【发布时间】:2013-05-03 08:53:54 【问题描述】:

我正在尝试使用MKMapView 的子类创建可靠的集群机制。我遇到了一项任务,我已经将我的头撞到墙上很长一段时间了 - 当它们相互重叠时将注释分组到一个集群中。我可以获得两个注释之间的距离(以米为单位),但是如何获得相对于缩放级别(latitudeDelta)的距离?理想情况下,我想知道两个注释何时相互重叠,考虑到它们的宽度和高度,例如 40x40。

【问题讨论】:

【参考方案1】:

您可以使用convertCoordinate:toPointToView: 获取注释的实际屏幕点的位置:

CGPoint annotationPoint = [self.mapView convertCoordinate:annotation.coordinate 
                                            toPointToView:self.mapView];

之后,利用你的三角学技巧找出两点之间的距离。

【讨论】:

以上是关于考虑缩放级别的两点之间的 CLLocationCoordinate2D 距离的主要内容,如果未能解决你的问题,请参考以下文章

如何计算适当的谷歌地图缩放级别

如何设置地图视图的缩放级别,使三个引脚可见?

SwiftUI - 缩放、缩放和裁剪图像

Google Maps v3 - 限制可视区域和缩放级别

如何计算百度地图上两点的距离

如何使用java和百度地图api 得到两点之间的路程(