MKMapView setRegion 到 Annotation

Posted

技术标签:

【中文标题】MKMapView setRegion 到 Annotation【英文标题】:MKMapView setRegion to Annotation 【发布时间】:2012-12-05 08:53:22 【问题描述】:

各位。如果你可以的话,我需要一些帮助。当我按下地图按钮时,我通过 CLLocation 属性加载了一个具有经度和纬度的对象。问题是,我不希望地图将区域/中心坐标设置为用户位置,我希望它在地图加载后进入注释区域,所以我这样做:

- (void)loadActiveEstateAnnotation

    RE_Annotation *re_annotation = [[RE_Annotation alloc] init];

     if(self.mapView.showsUserLocation == YES)
         NSLog(@"Santa Clause is comming to town");

    re_annotation.longitude = viewingEstate.estateLocation.coordinate.longitude;
    re_annotation.latitude = viewingEstate.estateLocation.coordinate.latitude;
    re_annotation.poiID = [[RE_Shared sharedInstance] selectedEstate];
    re_annotation.title = [NSString stringWithFormat:@"Estate %d",re_annotation.poiID];

    [self.mapView addAnnotation:re_annotation];

    CLLocationCoordinate2D activeAnnotationCoordonate;

    activeAnnotationCoordonate.longitude = re_annotation.longitude;
    activeAnnotationCoordonate.latitude = re_annotation.latitude;

    MKCoordinateSpan activeEstateSpan;

    activeEstateSpan.longitudeDelta = 0.05;
    activeEstateSpan.latitudeDelta = 0.05;


    MKCoordinateRegion activeEstateRegion;

    activeEstateRegion.center = activeAnnotationCoordonate;
    activeEstateRegion.span = activeEstateSpan;

    NSLog(@"----These are the coordinates%f,%f", activeAnnotationCoordonate.longitude, activeAnnotationCoordonate.latitude);   // coordinates are good and valid ive checked them

    [self.mapView setRegion:activeEstateRegion];
    [self.mapView regionThatFits:activeEstateRegion];
    [re_annotation autorelease];


所以底线 mapview 出口不是设置区域,即使坐标也很好。但是,它确实接受了我给它的不同跨度,但它仍然始终锁定在用户区域;问题是……为什么?

【问题讨论】:

【参考方案1】:

发生这种情况是因为您的 CLLocationManager 类每次都使用您的 MKMapView 更新位置,所以在这里您更新的当前位置被设置为 MapView 的区域

要停止这个,只需调用这个方法..

[yourLocationManager stopUpdatingLocation];

在您的 loadActiveEstateAnnotation 方法中开始。

【讨论】:

以上是关于MKMapView setRegion 到 Annotation的主要内容,如果未能解决你的问题,请参考以下文章

MKMapView setRegion 到 Annotation

MKMapView 因 setRegion 而崩溃

MKMapView 和 setRegion:animated: 不更新地图视觉效果

在UICollectionViewCell中,setRegion对MKMapView没有影响

MKMapView 自己缩小

MKMapView 缩放和区域