Как определить разницу между двумя точками на карте и рассмотреть масштаб? - PullRequest
1 голос
/ 27 апреля 2020

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

расстояние должно быть между точками с метками форматирования x и y

Поэтому мой вопрос заключается в том, как отследить разницу между 2 точками на карте и рассмотрите увеличение

// convert location to cLLocation
let cLLocation1 = CLLocation(latitude: post1Location?.lat ?? 0, longitude: post1Location?.lng ?? 0)
let cLLocation2 = CLLocation(latitude: post2Location?.lat ?? 0, longitude: post2Location?.lng ?? 0)


// this is return the dinsactence in metres but i don't need that
let distance = cLLocation1.distance(from: cLLocation2)



let annotaionPoint1 = MKMapPoint(cLLocation1.coordinate)
let annotaionPoint2 = MKMapPoint(cLLocation2.coordinate)

let xDistance = max(annotaionPoint1.x, annotaionPoint2.x) - min(annotaionPoint1.x, annotaionPoint2.x)
let yDistance = max(annotaionPoint1.y, annotaionPoint2.y) - min(annotaionPoint1.y, annotaionPoint2.y)

, это работает, но увеличение и уменьшение масштаба не имеют никакого эффекта, поэтому мне нужно увеличить, чтобы внести изменения

if min(xDistance, yDistance) <= 32 {
   /// action
}
...