如何显示两个坐标内的地图?

ank*_*kit 1 coordinates mapkit cllocationmanager ios swift

我想显示两个坐标之间的地图。我已使用此代码来显示包含两个坐标的地图矩形。但我的两个坐标都没有显示,而是显示了两个坐标之间的区域(不包括坐标)。我应该怎么做才能包含我的两个坐标?

    let coordinate1 = CLLocationCoordinate2DMake(28.53, 77.39)
    let coordinate2 = CLLocationCoordinate2DMake(29.13,76.69)
    // convert them to MKMapPoint
    let p1 = MKMapPointForCoordinate (coordinate2);
    let p2 = MKMapPointForCoordinate (coordinate1);

    let mapRect = MKMapRectMake(fmin(p1.x,p2.x), fmin(p1.y,p2.y), fabs(p1.x-p2.x), fabs(p1.y-p2.y));
    mapView.setVisibleMapRect(mapRect, animated: true)
Run Code Online (Sandbox Code Playgroud)

ank*_*kit 5

基本上这是由于自动布局造成的。我们应该用mapViewDidFinishLoadingMap(mapView: MKMapView)方法来设置它。

func mapViewDidFinishLoadingMap(mapView: MKMapView) {
    // this is where visible maprect should be set
    let coordinate1 = CLLocationCoordinate2DMake(28.53, 77.39)
    let coordinate2 = CLLocationCoordinate2DMake(29.13,76.69)
    // convert them to MKMapPoint
    let p1 = MKMapPointForCoordinate (coordinate2);
    let p2 = MKMapPointForCoordinate (coordinate1);

    let mapRect = MKMapRectMake(fmin(p1.x,p2.x), fmin(p1.y,p2.y), fabs(p1.x-p2.x), fabs(p1.y-p2.y));
    mapView.setVisibleMapRect(mapRect, animated: true)
}
Run Code Online (Sandbox Code Playgroud)