CLLocationCoordinate2D расстояние между двумя точками с учетом уровня масштабирования

Я пытаюсь создать надежный механизм кластеризации, используя подкласс класса MKMapView. Я столкнулся с задачей, над которой уже довольно давно бьюсь головой о стену — группировка аннотаций в один кластер, когда они перекрываются друг с другом. Я могу получить расстояние в метрах между двумя аннотациями, но как я могу получить это расстояние относительно уровня масштабирования (latitudeDelta)? В идеале я хотел бы знать, когда две аннотации перекрываются друг с другом, учитывая, что их ширина и высота, например, составляют 40x40.


person Eugene    schedule 03.05.2013    source источник


Ответы (1)


Вы можете использовать convertCoordinate:toPointToView:, чтобы получить местоположение фактической точки экрана для аннотации:

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

После этого используйте свои навыки тригонометрии, чтобы найти расстояние между двумя точками.

person nevan king    schedule 03.05.2013