0

我正在做一个应用程序。我正在使用CLLOcationmanager下面的类似内容。

[self performSelectorOnMainThread:@selector(findlocation:) withObject:nil waitUntilDone:NO];

-(void)findlocation:(id)sender
{
//NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];
locationManager=[[CLLocationManager alloc]init];
locationManager.delegate=self;
locationManager.distanceFilter=0.3f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

}

   - (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation
{
    NSLog@"%@",newlocation.timestamp];
}

我想每 0.3 米更新一次位置。但是这个委托方法不会针对那个距离触发。在[self performSelectorOnMainThread:@selector(findlocation:) withObject:nil waitUntilDone:NO];我剩下的过程开始工作之后。

4

1 回答 1

0

我想这可能会对你有所帮助。您需要使用经度和纬度调整距离

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation {
    MKCoordinateRegion region = { { 0.0f, 0.0f }, { 0.0f, 0.0f } };
    region.center = newLocation.coordinate;
    region.span.longitudeDelta = 0.15f; 
    region.span.latitudeDelta = 0.15f;
    [self.mapView setRegion:region animated:YES];
}

以上代码使用 0.15 度(0.15*111 公里)。

或者尝试使用你的 distanceFilter"。使用 distanceFilter 可以过滤掉那种无关的运动。

于 2012-12-21T10:50:42.850 回答