0

我使用 MKMapView 显示我当前的位置,我发现当我什么都不做时,我需要大约 15 秒以上才能看到蓝色圆圈并指向地图视图,但是如果我在地图视图之后移动地图开始定位,蓝色圆圈和点会立即显示(现在不需要5秒),它们之间有什么区别?我可以缩短在编码中显示蓝色圆圈的时间吗?多谢

我创建地图

self.runMapView = [[[MKMapView alloc] initWithFrame:self.bounds] autorelease];
        self.runMapView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
        self.runMapView.showsUserLocation = YES;
        runMapView.delegate = self;

接着 :

- (void)mapView:(MKMapView *)mapView_ didUpdateUserLocation:(MKUserLocation *)userLocation
{
    if (loc2 == nil)//loc 2 is the ivar i used to track my first location
    {
        if (CLLocationCoordinate2DIsValid(userLocation.location.coordinate))
        {
            self.loc2 = userLocation.location;

            MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate, 2000, 2000);
            [runMapView setRegion:region];
        }
    }

}

我在地图上添加了一些折线视图,当我在开始时将地图视图添加到视图 ctrl 的视图时,地图视图的 alpha 设置为 0(因为我有一个按钮来决定显示或隐藏地图视图),我没有知道后面的地图更新位置是否会导致这个问题?

4

1 回答 1

0

为位置管理器创建一个变量,您需要在地图视图初始化下方更新位置,如下所示:

self.runMapView = [[[MKMapView alloc] initWithFrame:self.bounds] autorelease];
    self.runMapView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    self.runMapView.showsUserLocation = YES;
    self.runMapView.delegate = self;
    [self.locationManager startUpdatingLocation];
于 2017-11-28T19:19:30.693 回答