跟踪 iphone 的位置并通知是不是在 ios Objective C 中越过某些公里
Posted
技术标签:
【中文标题】跟踪 iphone 的位置并通知是不是在 ios Objective C 中越过某些公里【英文标题】:Track location of iphone and notify if crosses certain kilometeres in ios Objective C跟踪 iphone 的位置并通知是否在 ios Objective C 中越过某些公里 【发布时间】:2016-09-29 06:27:31 【问题描述】:我想跟踪我的 ios 设备的位置并在应用程序中通知它是否越过某些公里。假设我想通知它是否从设备的当前位置越过 1 公里。请帮助我是 iOS 编程新手。
我能够获取当前位置。 请帮忙。
这是我能做的。
- (void)viewDidLoad
[super viewDidLoad];
self.mapView.delegate=self;
// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7.
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy=kCLLocationAccuracyBest;
self.locationManager.distanceFilter = kCLLocationAccuracyBestForNavigation;//constant update of device location
[self.locationManager requestWhenInUseAuthorization];
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startUpdatingLocation];
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
self.userLocation = userLocation;
MKCoordinateSpan coordinateSpan; coordinateSpan.latitudeDelta = 0.3f; coordinateSpan.longitudeDelta = 0.3f;
MKCoordinateRegion regionToShow; regionToShow.center = userLocation.coordinate; regionToShow.span = coordinateSpan;
[self.mapView setRegion:regionToShow animated:YES];
MKPointAnnotation *point=[[MKPointAnnotation alloc]init];
point.coordinate=userLocation.coordinate;
point.title=@"where Am I";
point.subtitle=@"YOU are Here";
[self.mapView addAnnotation:point];
【问题讨论】:
***.com/questions/35515528/… 使用 locationManager.distanceFilter = 1000; // 米 你需要计算当前位置到旧位置的距离。 CLLocationDistance dist = [loc1 distanceFromLocation:loc2]; 并在它给你 1 公里时通知。 您能否通过示例代码解释一下.. 怎么做.. @EktaMakadiya 【参考方案1】:self.currentLocation
必须是CLLocation
的对象。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
CLLocationDistance dist = [self.currentLocation distanceFromLocation:userLocation.location];
if (dist == 1000.0)
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:[NSString stringWithFormat:@"Message : you moved %.2f", dist] preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
// your code on OK click
]];
[self presentViewController:alert animated:TRUE completion:^ ];
self.currentLocation = userLocation.location;
self.userLocation = userLocation;
【讨论】:
[self.userLocation distanceFromLocation:userLocation.location];您好,此 userLocation.location 出现错误。它不采用 MKUserLocation 类型。 @VRAwesome 请为不同的类创建两个不同的对象:@property (retain, nonatomic) CLLocation *currentLocation;
和@property (retain, nonatomic) MKUserLocation *userLocation;
以上是关于跟踪 iphone 的位置并通知是不是在 ios Objective C 中越过某些公里的主要内容,如果未能解决你的问题,请参考以下文章