Как я могу рассчитать расстояние между двумя точками в MkMapview? - PullRequest
6 голосов
/ 03 ноября 2011

В приложении для iPhone как вычислить расстояние между двумя точками в MKMapView, как показано на рисунке ниже?

Первая точка будет центральной точкой видимой карты в виде карты.

2-ой точкой будет любой угол видимого прямоугольника карты (здесь, например, я взял верхнюю левую точку).

enter image description here

Я хочурассчитать это расстояние в метрах.Как мне этого добиться?

Моя цель - вычислить отношения видимого прямоугольника карты в MKMapview.

Ответы [ 3 ]

30 голосов
/ 03 ноября 2011

Вы можете получить широту / долготу центра с помощью:

convertPoint:toCoordinateFromView:

loc1 и loc2 оба являются объектами CLLocation.

CLLocationDistance dist = [loc1 distanceFromLocation:loc2];

Так что эти два совета должны вам помочь. если вам нужен код, дайте мне знать: -)

2 голосов
/ 03 ноября 2011

Вот как вы можете рассчитать желаемое расстояние:

// You first have to get the corner point and convert it to a coordinate
MKMapRect mapRect = self.mapView.visibleMapRect;
MKMapPoint cornerPointNW = MKMapPointMake(mapRect.origin.x, mapRect.origin.y);
CLLocationCoordinate2D cornerCoordinate = MKCoordinateForMapPoint(cornerPointNW);

// Then get the center coordinate of the mapView (just a shortcut for convenience)
CLLocationCoordinate2D centerCoordinate = self.mapView.centerCoordinate

// And then calculate the distance
CLLocationDistance distance = [cornerCoordinate distanceFromLocation:centerCoordinate];
1 голос
/ 30 января 2018

Swift 3 +

let distance: CLLocationDistance = location1.distance(from: location2)
...