gpt4 book ai didi

允许位置服务权限后的iOS获取位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:45 26 4
gpt4 key购买 nike

在应用程序启动时,应用程序请求用户的当前位置。关于授予应用程序访问位置服务权限的 AlertBox 弹出。我的问题是如何在用户允许位置服务后立即获取位置?

我的代码

- (void)viewDidLoad
{
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.distanceFilter = kCLDistanceFilterNone;
self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[self.locationManager startUpdatingLocation];

latitude = [NSString stringWithFormat:@"%f",self.locationManager.location.coordinate.latitude];
longtitude = [NSString stringWithFormat:@"%f",self.locationManager.location.coordinate.longitude];


GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[latitude floatValue]
longitude:[longtitude floatValue]
zoom:16];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.delegate = self;
mapView.myLocationEnabled = YES;
self.view = mapView;

// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake([latitude intValue], [longtitude intValue]);
marker.title = @"Current Location";
marker.map = mapView;
}

一旦允许定位服务,有没有办法获取用户的当前位置?我的代码仅在用户允许位置服务然后重新启动应用程序时才有效。

我也尝试实现下面的代码。但是 NSLog 没有出现。

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

CLLocation *loc = locations.lastObject;
double speed = loc.speed;
NSLog(@"speed-----%f ", speed);
}

有什么建议吗?我遗漏了什么吗?

最佳答案

就说:

self.locationManager.delegate = self;

在这一行之后:

self.locationManager = [[CLLocationManager alloc] init];

注意:确保在头文件中添加了 CLLocationManagerDelegate。

关于允许位置服务权限后的iOS获取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27440580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com