放大userLocation

时间:2010-03-11 07:22:23

标签: iphone mkmapview

如何在我的应用中自动缩放userLocation上的地图? 我在地图中有zomm的以下代码,但我必须放大userLocation并且以下代码始终缩放到非洲?

MKCoordinateRegion zoomIn = mapView.region;
    zoomIn.span.latitudeDelta *= 0.2;
    zoomIn.span.longitudeDelta *= 0.2;
    zoomIn.center.latitude = mapView.userLocation.location.coordinate.latitude;
    zoomIn.center.longitude = mapView.userLocation.location.coordinate.longitude;
    [mapView setRegion:zoomIn animated:YES];

2 个答案:

答案 0 :(得分:2)

好的我用以下的委托方法解决了这个问题:

-(void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views{
    for(MKAnnotationView *annotationView in views) {
        if(annotationView.annotation == mv.userLocation){
            MKCoordinateRegion region;
            MKCoordinateSpan span;

            span.latitudeDelta=0.9;
            span.longitudeDelta=0.9;

            CLLocationCoordinate2D location =mv.userLocation.coordinate;

            location = mv.userLocation.location.coordinate;

            region.span = span;
            region.center = location;
            [mv setRegion:region animated:TRUE];
            [mv regionThatFits:region];
        }
    }
}

答案 1 :(得分:2)

非常感谢,这对我帮助很大。真的很想投票,但因为我的代表级别而无法投票。

我还发现使用:

mapView.userLocation.location.coordinate.latitude;

总是把我缩放到非洲,从不把我带到我当前的位置。

但是使用委托方法:

-(void)mapView:(MKMapView *)myMapView didAddAnnotationViews:(NSArray *)views {

我能够成功解决这个问题。我发现使用mapView.userLocation.location.coordinate.latitude;在viewDidLoad方法中,在启动视图时没有触发正确的用户坐标,因此它显示错误的坐标。