如何获取iOS中的variables位置(经度和纬度值)?

我想使用我的应用程序用户的位置,更具体地说是经度和纬度值。

我需要他们在一个variables中使用,以便我可以发送一个url…

我从来没有在iOS和Xcode的位置工作,发现没有任何匹配我的问题在互联网上…

所以我希望有人可以解释一下我的代码示例:)

Thx帮你从德国来的Laurenz

您可以使用CoreLocation获取经度和纬度。

包含框架:

在导航器中点击您的项目。

点击“链接二进制库”下的加号button

将Corelocation添加到您的项目。

导入头文件:

#import <CoreLocation/CoreLocation.h> 

声明CLLocationManager:

 CLLocationManager *locationManager; 

初始化locationManager:

 - (void)viewDidLoad { locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; [locationManager startUpdatingLocation]; } 

然后,使用

 float latitude = locationManager.location.coordinate.latitude; float longitude = locationManager.location.coordinate.longitude; 

第1步:在您的项目中添加CoreLocation框架。

  1. selectTARGETS – > Build Phase
  2. select与库的链接二进制文件
  3. 点击加号(+)button。 这将popup框架列表。
  4. searchCoreLocation框架添加它。

截图1

截图2

第2步:在要获取位置的视图控制器的头文件中写下面的代码:

 #import <CoreLocation/CoreLocation.h> 

另外,在界面中添加CLLocationManagerDelegate

现在,创buildLocationManager的对象

  CLLocationManager *locationManager; 

第三ViewDidLoad :在ViewDidLoad方法中写下面的代码:

  locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; [locationManager startUpdatingLocation]; [locationManager requestAlwaysAuthorization]; //Note this one 

您可以将期望的精度值设置为kCLLocationAccuracyBest, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers

现在,写下面的代码来获取纬度和经度值

  float Lat = locationManager.location.coordinate.latitude; float Long = locationManager.location.coordinate.longitude; NSLog(@"Lat : %f Long : %f",Lat,Long); 

第4步:在iOS 8中,这段代码无声无息地出现,即不会有任何错误或警告。

你需要做两件额外的事情来获得位置工作:

  1. 添加一个关键到你的Info.plist
  2. 要求位置pipe理员要求开始的请求授权

Info.plist文件中需要添加以下任一项或两项。

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

这些是stringtypes,值可以是任何消息描述或空的。

现在您需要为相应的位置方法请求授权。 使用下面的任何一个调用:

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [self.locationManager requestAlwaysAuthorization]

迅速:

 var locationManager = CLLocationManager() locationManager.distanceFilter = kCLDistanceFilterNone locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters locationManager.startUpdatingLocation() 

更多信息在这里: https : //developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/cl/CLLocationManager