ios位置跟踪器问题(objective-c)

时间:2017-03-02 20:21:58

标签: ios objective-c gps

我正在使用Objective-C开发FitnessApp。 此应用程序具有跟踪步行用户的位置和绘制用户路径的功能。 我使用CLocationManager并在其委托中获取用户位置。 这是我的代码。

myLocation.desiredAccuracy = kCLLocationAccuracyBest ;
myLocation.distanceFilter = 12 ;
myLocation.activityType = CLActivityTypeAutomotiveNavigation;
myLocation.delegate = self;
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *newLocation = locations.lastObject;
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = newLocation.coordinate;
marker.map = mapView;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:newLocation.coordinate zoom:ZOOM];
[mapView animateToCameraPosition:camera];
}

但结果是非常错误的,它非常震动和ZIGZAG甚至我在街上奔跑。顺便说一句,我把它与谷歌地图导航比较,这是正确的, 我错了什么?我该如何开发像Uber这样的GPS跟踪模块,谷歌地图没有摇晃?

Plz帮助我。

2 个答案:

答案 0 :(得分:0)

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
{
    [self.locationManager requestWhenInUseAuthorization];

    [self.locationManager startUpdatingLocation];
    self.locationManager.pausesLocationUpdatesAutomatically = NO;

    [self updateMapWithCoordinates:self.userLocationcoordinates];
}

首先询问系统是否提供位置,然后询问cal startupdatinglocation,并将其设置为Stop to Know, 现在,每次更新位置时,都可以了解您的位置..

答案 1 :(得分:0)

你必须发展核心动作。一般上面的方法有很长的延迟和错误的位置。

当你保持一个位置时,你会得到几个位置。

所以你必须使用核心动作。