В основном вам необходимо проверить существенные изменения местоположения, может быть случай, когда пользователь стоит в определенном месте в течение минуты и NSTimer или логики в течение 10 секунд, что вам будут использоваться снова и снова. Для этого вам необходимо проверить существенные изменения местоположения, как указано ниже.
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
//Configure Accuracy depending on your needs, default is kCLLocationAccuracyBest
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
// Set a movement threshold for new events.
locationManager.distanceFilter = 500; // meters, set according to the required value.
[locationManager startUpdatingLocation];
Вы не можете сделать это полностью с Google Maps SDK, вы должны использовать рамки CLLocationManger, чтобы получить обновление местоположения.
Инициализировать ваш locationManager зарегистрировать значительные изменения местоположения и настроить делегат правильно
Делегат местоположения сены в:
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
// If it's a relatively recent event, turn off updates to save power.
CLLocation* location = [locations lastObject];
NSDate* eventDate = location.timestamp;
NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
if (abs(howRecent) < 15.0) {
// Update your marker on your map using location.coordinate by using the GMSCameraUpdate object
GMSCameraUpdate *locationUpdate = [GMSCameraUpdate setTarget:location.coordinate zoom:YOUR_ZOOM_LEVEL];
[mapView_ animateWithCameraUpdate:locationUpdate];
}
Это может помочь.
спасибо, как насчет того, чтобы представить, что 'inspectCenter' будет меняться каждые 10 секунд, есть ли хороший способ, обеспечивающий удобство работы с батареей? – Gearbox
Является ли человек, использующий ваше приложение ходьбой или вождением? – gurmandeep
только прогулка – Gearbox