【问题标题】:how to reduce the time of showing blue circle and point in MKMapView如何减少在MKMapView中显示蓝色圆圈和点的时间
【发布时间】:2013-03-04 03:22:42
【问题描述】:

我使用 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(因为我有一个按钮来决定显示或隐藏地图视图) ,不知道后面的地图更新位置会不会导致这个问题?

【问题讨论】:

  • 我在第一秒看到我的应用程序中的蓝点,显示水平精度的圆圈可能稍后出现。
  • 你能展示一些你的代码吗?移动地图或加载页面以显示用户位置后,您可能正在做某事。一般来说,开发人员无法做任何事情来加速这个过程,一旦地图是旧的,它需要显示用户的位置,它取决于 iOS 来为你获取它,你不能改变它。您可以做的是在您的应用要求位置时进行更改,也许您这样做太晚了,但如果没有您的一些代码,我们就看不到。
  • 好的,我已经贴了相关代码,请看一下
  • 好的,我现在似乎对这个问题有了一些线索,起初,定位时间的问题是由于我在创建地图视图后设置了地图视图的 alpha = 0,以及对此的解决方案就是当你重新打开mapview的时候,reset mapview的区域(区域必须和mapview的当前区域不同)这会导致定位重启。

标签: ios location mkmapview


【解决方案1】:

为位置管理器创建一个变量, 您需要像这样更新地图视图初始化下方的位置:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2015-07-27
    • 2016-09-10
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    相关资源
    最近更新 更多