1

尝试使用 MKMapView 时遇到问题。这是我第一次尝试使用其中一个,但我无法弄清楚如何使用它。以下是我用来尝试使其工作的两段不同的示例代码,但都不工作:

mapView = [[MKMapView alloc] initWithFrame:CGRectMake( 0, 0, 320, 150 )];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance( CLLocationCoordinate2DMake( latitude, longitude ), metersPerMile*0.5, metersPerMile*0.5 );
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region];
[mapView setRegion:adjustedRegion];

或者

mapView = [[MKMapView alloc] initWithFrame:CGRectMake( 0, 0, 320, 150 )];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance( CLLocationCoordinate2DMake( latitude, longitude ), metersPerMile*0.5, metersPerMile*0.5 );
[mapView setRegion:region];

或者

mapView = [[MKMapView alloc] initWithFrame:CGRectMake( 0, 0, 320, 150 )];
[self.mapView setRegion:MKCoordinateRegionMake(CLLocationCoordinate2DMake( latitude, longitude ), MKCoordinateSpanMake( 0.01, 0.01 ))];

所有这些代码片段对 MKMapView 完全没有任何作用。每当视图最终加载时,它什么都不做,我只是看着整个北美,这不是很有帮助。

如果有人可以帮助我解决这个问题,我将不胜感激。

4

3 回答 3

1

您还没有将地图添加到您的视图中.. 喜欢[self.view addSubView:mapView];

于 2012-04-16T07:02:28.930 回答
0

我通过实现 – mapView:viewForAnnotation: from MKMapViewDelegate 向用户展示他在哪里。看看这个:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{   
    // If it's the user location, return nil.
    if ([annotation isKindOfClass:[MKUserLocation class]])
    {
            MKCoordinateSpan coordinateSpan = MKCoordinateSpanMake(0.009, 0.009);
            [mapView setRegion:MKCoordinateRegionMake(annotation.coordinate, coordinateSpan) animated:YES];
    }
    return nil; 

}

于 2012-04-16T07:10:49.310 回答
0

如果您要加载 MapView,这将有所帮助

 - (void)mapViewWillStartLoadingMap:(MKMapView *)mapView
  {
     [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
     NSLog(@"map loading...");
  }
于 2012-05-28T03:59:43.923 回答