Я пытаюсь создать надежный механизм кластеризации, используя подкласс класса MKMapView
. Я столкнулся с задачей, над которой уже довольно давно бьюсь головой о стену — группировка аннотаций в один кластер, когда они перекрываются друг с другом. Я могу получить расстояние в метрах между двумя аннотациями, но как я могу получить это расстояние относительно уровня масштабирования (latitudeDelta)? В идеале я хотел бы знать, когда две аннотации перекрываются друг с другом, учитывая, что их ширина и высота, например, составляют 40x40.
CLLocationCoordinate2D расстояние между двумя точками с учетом уровня масштабирования
Ответы (1)
Вы можете использовать convertCoordinate:toPointToView:
, чтобы получить местоположение фактической точки экрана для аннотации:
CGPoint annotationPoint = [self.mapView convertCoordinate:annotation.coordinate
toPointToView:self.mapView];
После этого используйте свои навыки тригонометрии, чтобы найти расстояние между двумя точками.
person
nevan king
schedule
03.05.2013