【问题标题】:How do I track user's location just long enough to grab the location?如何在足够长的时间内跟踪用户的位置以获取该位置?
【发布时间】:2013-08-12 05:55:51
【问题描述】:

我有三点,但实际上只有第一点是最重要的

  • 为了保持电池寿命,我试图让 locationManager 开启足够长的时间以获取用户的位置,然后关闭。这样做的最佳方法是什么?

  • 我并不总是需要知道用户的位置,但是在用户点击搜索时获得相对准确的位置很重要(可能在几十个街区内,10,000 米,甚至可能更不准确)。

  • 我正在向服务器发送请求,然后获取结果,经过该延迟后,我需要更准确的用户位置版本(100 米以内即可)。

    李>

我不知道这有多少太挑剔了,但如果最后两点是可能的/电池效率高,那么请告诉我该怎么做!

【问题讨论】:

    标签: ios cllocationmanager


    【解决方案1】:

    当您的CLLocationManager 的代表收到符合您所需准确度的位置更新时,您可以轻松停止跟踪位置。

    要开始更新位置,请执行以下操作:

    CLLocationManager *locationManager = [CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
    [locationManager startUpdatingLocation];
    

    然后实现相应的CLLocationManagerDelegate方法:

    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
      CLLocation *foundLocation = [locations lastObject];
      if (foundLocation && foundLocation.horizontalAccuracy < kYourDesiredAccuracyInMetres)
      {
        [manager stopUpdatingLocation];
        //Do whatever else with the location you've established
      }
    }
    

    您应该能够通过检查返回的位置的准确性并停止更新或让它们继续(如果您需要更高的准确性)来调整它以满足您的要求。

    当您开始更新位置时设置一个计时器也是一个好主意,如果您在设定的时间内没有找到位置,则停止更新。您还应该实现locationManager:didFailWithError: 委托方法来检查您是否可以访问位置服务。

    【讨论】:

      【解决方案2】:

      LocationManager 可以在检索到用户的位置信息后停止。

      CLLocationManager* locationManager = [ [ CLLocationManager alloc] init];
      
      locationManager.delegate = self; //we must implement the protocol
      
      locationManager.distanceFilter = kCLDistanceFilterNone;
      locationManager.headingFilter = kCLHeadingFilterNone;
      locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; 
      
      
      //To turn on gps (if it isn't on already)
      [locationManager startUpdatingLocation];
      
      //To turn gps off (if no other apps are listening)
      [locationManager stopUpdatingLocation];
      

      【讨论】:

        猜你喜欢
        • 2013-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-02
        • 2018-08-04
        • 1970-01-01
        相关资源
        最近更新 更多