2013-08-12 1 views
0

, 나는을 locationManager이 사용자의 위치를 ​​얻기 위해 단지 충분히 켜 가지고 노력하고있어 나는 세 가지 포인트를 가지고 있지만, 정말 첫 번째 하나는 배터리 수명을 보존하기 위해사용자의 위치를 ​​파악할 수있을만큼 길게 추적하는 방법은 무엇입니까?

  • 가장 중요하며, 그 다음에 꺼주십시오. 그렇게하는 가장 좋은 방법은 무엇입니까?

  • 항상 사용자의 위치를 ​​알 필요는 없지만 사용자가 검색을 히트 할 때 상대적으로 정확한 위치를 갖는 것이 중요합니다 (몇 십만 도시 블록, 10,000 미터, 어쩌면 덜 정확함).

  • 나는 서버에 요청을 보내고 그 결과를 얻고 그 지연 후에 100 미터 내에서보다 정확한 사용자 위치 버전이 필요합니다.

나는이 너무 nitpicky입니다 얼마나 많이 알고 있지만 지난 두 지점이 배터리 현명한 효율적인/가능한 경우, 다음 내가 그것을 수행하는 방법을 알려 주시기 바랍니다 없어!

답변

2

당신은 쉽게 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: 대리자 메소드를 구현해야합니다.

1

사용자의 위치 정보를 검색 한 후에 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]; 
관련 문제