标签: cllocation

如何评估GPS信号强度?(苹果手机)

我需要一种分类GPS信号强度的方法.到目前为止,我遇到过(Class Reference)的horizontalAccuracy属性.CLLocation

更具体地说,我需要创建类似下面的内容; 我所遇到的问题是填写if声明.

if (someLocation.horizontalAccuracy ...)
{
    // No Signal
}
else if (someLocation.horizontalAccuracy ...)
{
    // Poor Signal
}
else if (someLocation.horizontalAccuracy ...)
{
    // Average Signal
}
else if (someLocation.horizontalAccuracy ...)
{
    // Good Signal
}
else
{
    // Excellent Signal
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?

iphone gps cllocation ios

8
推荐指数
1
解决办法
4448
查看次数

CLLocationManager不能一直工作(iOS 8,Xcode 6)

委托方法基本上是一半的时间

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
Run Code Online (Sandbox Code Playgroud)

完全没有被召唤.但另一半时间它完美运作!我发现它通常发生在我关闭并退出它之后第一次启动Xcode时,但之后在那之后或者几次运行之后它似乎工作正常.我不是100%肯定,如果它只是一个Xcode问题或什么,我很快就会得到开发人员的许可证,所以我会看看它是否能在实际设备上正常工作.

从viewDidAppear开始(在viewDidLoad中尝试也没有区别),我运行一个方法来初始化我的locationManager东西:

locationManager = [[CLLocationManager alloc]init];

[locationManager setDelegate:self];
locationManager.distanceFilter = 20.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.pausesLocationUpdatesAutomatically = NO;

if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
    [locationManager requestAlwaysAuthorization];

[locationManager startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)

有时候这种方法有效,有时则不然.我甚至做了一个计时器,每隔一秒钟就重新运行一次,但这不起作用.

还有什么我应该做的吗?这个问题有什么答案吗?

谢谢.

xcode objective-c cllocationmanager cllocation ios

8
推荐指数
1
解决办法
1713
查看次数

如何在IOS SDK 8.0中获取当前位置的经度和纬度

如何获取当前位置的经纬度.

我试过这个.使用Xcode 6.01和IOS SDK 8.0

-(CLLocationCoordinate2D) getLocation{
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.distanceFilter = kCLDistanceFilterNone;
    [locationManager startUpdatingLocation];
    CLLocation *location = [locationManager location];
    CLLocationCoordinate2D coordinate = [location coordinate];
    return coordinate;
}

- (void)getCurrentLocation{    
    CLLocationCoordinate2D coordinate = [self getLocation];
    NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
    NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
    NSLog(@"Latitude  = %@", latitude);
    NSLog(@"Longitude = %@", longitude);
}


- (void)viewDidLoad{
    [super viewDidLoad];
    [self getCurrentLocation];

}
Run Code Online (Sandbox Code Playgroud)

在这里,我将模拟器位置启用到Deployment 8.0 iPhone模拟器4s.即使在设备上也无法正常工作.

@ALL请告诉我,我在这里做错了什么.

core-location cllocationmanager cllocation currentlocation ios8

8
推荐指数
2
解决办法
1万
查看次数

Objective-C - 根据用户输入的查询搜索街道

我想允许用户搜索街道名称并将结果显示在UITableView中.目前该地区并不重要,它可以来自任何地区.

我在搜索中找不到任何相关示例,我不知道是否应该使用CLLocation或MKLocalSearch.

根据文档,我应该使用MKLocalSearch:

虽然本地搜索和地理编码类似,但它们支持不同的用例.如果要在地图坐标和结构化地址(例如地址簿地址)之间进行转换,请使用地理编码.如果要查找与用户输入匹配的一组位置,请使用本地搜索.

但我尝试了两种方法,它只给了我一个结果(即使 - 虽然有一个NSArray返回.

这是CLGeocoder方法:

CLGeocoder *geocoding = [[CLGeocoder alloc] init];
[geocoding geocodeAddressString:theTextField.text completionHandler:^(NSArray *placemarks, NSError *error) {
    if (error) {
        NSLog(@"%@", error);
    } else {
        NSLog(@"%i", [placemarks count]);
        for(CLPlacemark *myStr in placemarks) {
            NSLog(@"%@", myStr);
    }
    }
}];
Run Code Online (Sandbox Code Playgroud)

这是我的MKLocalSearch尝试:

MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = theTextField.text;
request.region = self.region;

localSearch = [[MKLocalSearch alloc] initWithRequest:request];

[localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){

    if (error != nil) {
        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Map Error",nil)
                                    message:[error localizedDescription]
                                   delegate:nil
                          cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show]; …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c cllocation mklocalsearch

8
推荐指数
1
解决办法
976
查看次数

didUpdateLocation方法从不调用

我正在iphone sdk4.0上创建一个应用程序.在那里,确实没有调用更新位置方法.我在下面给出了我的代码.请帮助.谢谢.

-(id)init
{
    [super init];

    obj=[[UIApplication sharedApplication]delegate];

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    //locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
    [locationManager startUpdatingLocation];

    return self;

}

-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"%f",newLocation.coordinate.latitude);

    NSLog(@"%f",newLocation.coordinate.longitude);

    obj=[[UIApplication sharedApplication]delegate];

    location=[[CLLocation alloc]initWithLatitude:newLocation.coordinate.latitude longitude:newLocation.coordinate.longitude];
    obj.lattitude1=[NSString stringWithFormat:@"%f",newLocation.coordinate.latitude];

    obj.longitude1=[NSString stringWithFormat:@"%f",newLocation.coordinate.longitude];
    //location=[[CLLocation alloc]initWithLatitude:39.9883 longitude:-75.262227];
}
Run Code Online (Sandbox Code Playgroud)

iphone cllocationmanager cllocation ios4 ios

7
推荐指数
2
解决办法
1万
查看次数

CLLocation - 在另一个位置找到磁偏角/偏差

我知道如何找到我手机当前所在位置的真实航向/磁航向,但是有可能找到远程位置的磁偏差/磁偏角吗?

我想做的是能够将一个销钉放在地图上的某个位置,并从该点找到具有磁性变化的真实轴承和轴承.

谢谢!

iphone objective-c cllocation ios

7
推荐指数
2
解决办法
1132
查看次数

如何存储CLLocationCoordinate2D?

我正在尝试构建一个应用程序来构建和保存类似于map run的路由.我用面包屑示例代码,特别是CrumbPathCrumbPathView我的路线的基础上,从苹果.两个问题:

  1. 如果我尝试访问类似的MKMapPoint *points对象,CrumbPath那么:

    [_route lockForReading];
    NSLog(@"%@", _route.points);
    NSLog(@"%d", _route.pointCount);
    [_route unlockForReading];
    
    Run Code Online (Sandbox Code Playgroud)

    我的应用程序崩溃,说:

    Thread 1: EXC_BAD_ACCESS (code: 1, address: 0x9450342d)
    
    Run Code Online (Sandbox Code Playgroud)

    我很难理解,因为在CrumbPath.m文件中,苹果的人通过显式获取写锁定然后解锁它来写入"数组",但是如果我获取了读锁并试图从中读取它,那么崩溃.

  2. 我尝试访问的原因points是尝试获取MKMapPoints,将它们转换为CLLocationCoordinate2D对象,并保存它们,以便我可以polyline根据用户的请求重绘.由于我无法访问points,我尝试保存我发送到数组中的CLLocationCoordinate2D对象以上传到我的Parse后端,但我总是收到错误说:locationManager_route

    Sending 'CLLocationCoordinate2D' to parameter of incompatible type 'id'
    
    Run Code Online (Sandbox Code Playgroud)

    这并没有使这更容易.有没有人知道为什么我会收到这些错误?

位置经理代表

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
    if (_userLocation.longitude != manager.location.coordinate.longitude
        && _userLocation.latitude != manager.location.coordinate.latitude) {
        _userLocation = manager.location.coordinate;
    }

    if (_isRecording) …
Run Code Online (Sandbox Code Playgroud)

mkmapview cllocation ios parse-platform

7
推荐指数
1
解决办法
6660
查看次数

CLLocation distanceFromLocation(在Swift?中)

有人可以帮我将以下Objective-C语句转换为Swift吗?

CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];
Run Code Online (Sandbox Code Playgroud)

我知道这样做一定很简单.我是iOS编程的全新,任何帮助将不胜感激.

谢谢!:-)

cllocation cllocationdistance swift

7
推荐指数
1
解决办法
9308
查看次数

未提示在应用程序中启用位置服务

更新:这不是一个重复.我已经在info.plist中添加了所需的密钥,如我原始问题中所述,问题仍然存在.我已经尝试了各种组合的所有三个键.

在任何人感到不安之前,我已阅读了许多Apple Dev论坛帖子和堆栈溢出帖子,无法弄清楚为什么我的应用程序拒绝提示用户允许使用时授权.

我已将以下密钥添加到我的Info.plist文件中,并附带一个String值:

NSLocationWhenInUseUsageDescription
Run Code Online (Sandbox Code Playgroud)

然后我写了(在Swift和Obj-C中)应该提示用户的代码:

@property CLLocationManager *location;
...
@synthesize location;
...
location = [[CLLocationManager alloc] init];
location.delegate = self;

location.desiredAccuracy = kCLLocationAccuracyBest;
location.distanceFilter = kCLDistanceFilterNone;

[location requestWhenInUseAuthorization];
[location startUpdatingLocation];


I'm using the following CLLocationManagerDelegate methods.
- (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
- (void) locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
Run Code Online (Sandbox Code Playgroud)

这基本上是直接从Apple"LocateMe"示例代码中复制的.

无论我尝试什么样的各种序列或细微的变化,应用程序都不会提示允许授权.我已经使用switch语句来确定状态[CLLocationManager authorizationStatus],但不断收到"未确定"的响应.

if ([CLLocationManager locationServicesEnabled]) {
        switch ([CLLocationManager authorizationStatus]) {
            case kCLAuthorizationStatusAuthorizedAlways:
                NSLog(@"Always Authorized");
                break;
            case kCLAuthorizationStatusDenied:
                NSLog(@"Denied");
                break;
            case kCLAuthorizationStatusAuthorizedWhenInUse:
                NSLog(@"Authorized in Use");
                break;
            case …
Run Code Online (Sandbox Code Playgroud)

objective-c cllocationmanager cllocation ios

7
推荐指数
1
解决办法
6914
查看次数

如何使用SwiftUI获取当前位置?

尝试使用swiftUI获取当前位置。下面的代码无法使用didUpdateLocations委托初始化。

class GetLocation : BindableObject {
    var didChange = PassthroughSubject<GetLocation,Never>()

    var location : CLLocation {
        didSet {
            didChange.send(self)
        }
    }
    init() {}
}
Run Code Online (Sandbox Code Playgroud)

cllocation swiftui

7
推荐指数
2
解决办法
1270
查看次数