iosobjective-cmkmapviewcllocationshowuserlocation

CLLocation- user location is lost (zero lat and long) on App resume


GPS signal is lost when App is resumed from long time suspend mode.
And/or after user goes into a building where GPS is weak and then resumes the App.

The blue dot disappears and the map is centered at lat:0 long:0 ( which is somewhere in the ocean near Nigeria-Africa ) If you launch another GPS app at that point in time, such as Apple Maps, you DO see the blue dot, even if not so accurate.

The only way a user can fix it - is by killing my app completely and start it again.

It happens on both iOS 5.x and iOS 6.x.

Before going into details, I would really like to ask:
Does anyone encounter this problem ??
Its very annoying but, I couldn't find anyone complaining about this anywhere on the web - very weird.

I'm using normal CLLocation with showUserLocation=YES,
Nothing magical, no special accuracy tuning or whatever, just simple default implementation.

I have already tried restarting every possible component when App is resumed;

showUserLocation=NO;
showUserLocation=YES;

or

[locationManager stopUpdatingLocation];
[locationManager startUpdatingLocation];

or even releasing locationManager and initialize it again doesn't help!
( also tried restarting it with a delay using dispatch_after )

Is there any programmatic way to force RESET the GPS signal or CLLocation in ios ?
Will appreciate any relevant discussion!


Solution

  • I Think you default Location is set "None" so this type of issue created.

    Go to 
    
    Edite Scheme..
        |
        |
      "Run YourProjectName"  / Left Hand Side
           |
           |
      Select "Option" Tab
             |
             |
         Default Location
              |
              |
         Choose any Location such like , "London England"