如何计算MkMapview中两点之间的距离?

时间:2011-11-03 10:51:10

标签: objective-c cocoa-touch ios4 mkmapview

在iPhone App中如何计算MKMapView中两点之间的距离 如下图所示?

第一个点是mapview中可见地图的中心点。

第二个点是mapview的可见矩形的任何一个角(这里,例如我采取了左上角的点)。

enter image description here

我想用米来计算这个距离。我怎样才能做到这一点?

我的目标是计算MKMapview中可见地图矩形的比率。

3 个答案:

答案 0 :(得分:29)

你可以通过以下方式获得中心的纬度/经度。

convertPoint:toCoordinateFromView:

loc1和loc2都是CLLocation objs。

CLLocationDistance dist = [loc1 distanceFromLocation:loc2];

所以这两个提示可以帮到你。如果你需要一些代码,请告诉我: - )

答案 1 :(得分:1)

以下是计算所需距离的方法:

// 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];

答案 2 :(得分:0)

Swift 3 +

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