【问题标题】:iphone zoom to user location on mapkitiphone缩放到mapkit上的用户位置
【发布时间】:2010-06-16 17:14:52
【问题描述】:

我正在使用地图工具包并使用“showsUserLocation”显示用户的位置 我正在使用以下代码缩放到用户的位置,但没有缩放。它缩放到非洲的某个位置,尽管地图上的用户位置显示正确。

MKCoordinateRegion newRegion; 
MKUserLocation* usrLocation = mapView.userLocation; 
newRegion.center.latitude = usrLocation.location.coordinate.latitude; 
newRegion.center.longitude = usrLocation.location.coordinate.longitude;
newRegion.span.latitudeDelta = 20.0;
newRegion.span.longitudeDelta = 28.0; 
[self.mapView setRegion:newRegion animated:YES];

为什么用户的位置可以正确显示,但不能正确缩放。有人可以纠正我吗?

【问题讨论】:

    标签: iphone mapkit zooming


    【解决方案1】:

    mapView.userLocation 在第一次实例化时设置为非洲海岸 (0,0) 以外的位置。结果,我做了类似以下的事情,这会导致在注释出现时发生缩放。当然,这只是一个例子:

    - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views {
        for(MKAnnotationView *annotationView in views) {
            if(annotationView.annotation == mv.userLocation) {
                MKCoordinateRegion region;
                MKCoordinateSpan span;
    
                span.latitudeDelta=0.1;
                span.longitudeDelta=0.1; 
    
                CLLocationCoordinate2D location=mv.userLocation.coordinate;
    
                region.span=span;
                region.center=location;
    
                [mv setRegion:region animated:TRUE];
                [mv regionThatFits:region];
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      你可以试试:

      mapView.userTrackingMode=YES;
      mapView.userTrackingMode=NO;
      

      UserTrackingMode 将缩放到用户位置。

      【讨论】:

      • 这会转到当前位置,但不会正常缩放。
      • 在 iOs 8.3 中它可以优雅地缩放。
      【解决方案3】:

      您确认mapView.userLocation返回的位置不在0、0吗?

      【讨论】:

      • 如果用户位置为零,则不会显示与我的位置完全匹配的注释图钉。
      • @satyam:正如您所描述的那样,使用纬度/经度三角洲,您将能够在缩放中包括非洲,因为 0,0 离海岸不远。此外,您没有告诉用户位置在哪里。
      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2011-08-29
      相关资源
      最近更新 更多