如何获取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框架。
- selectTARGETS – > Build Phase
- select与库的链接二进制文件
- 点击加号(+)button。 这将popup框架列表。
- searchCoreLocation框架并添加它。
第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中,这段代码无声无息地出现,即不会有任何错误或警告。
你需要做两件额外的事情来获得位置工作:
- 添加一个关键到你的Info.plist
- 要求位置pipe理员要求开始的请求授权 。
Info.plist文件中需要添加以下任一项或两项。
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
这些是stringtypes,值可以是任何消息描述或空的。
现在您需要为相应的位置方法请求授权。 使用下面的任何一个调用:
- [self.locationManager requestWhenInUseAuthorization]
- [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