在IOS开发中使用定位
2015-06-25 11:22
561 查看
由于项目的需要,我们在开发产品的过程中需要使用到定位系统。
这个过程中,我们需要使用到两个库:CoreLocation.framework 与MapKit.framework。前者是用来获取定位的坐标信息,后者是通过坐标信息来获取地址信息。
首先增加库文件:
通过这三步,然后就打开一个类库来进行查找。
输入关键字,找到对应的类库,加入到我们的项目之中。
可以看到这两个包已经引入到我们的项目之中来了,下面我们在需要使用的地方增加代码。
首先import,然后添加这个delegate
现在我们点击进入这个delegate看一下对应的方法:
看一下比较重要的方法:
1、发生错误的时候调用这个
获取到定位信息后调用这个方法:
这里我们可以看到这里有个解释:osx开始版本为iphone6.0以上,如果是6.0一下的版本该如何呢
我们看到了这个方法,iphone2.0以上iphone6.0以后废弃,所以为了代码健壮性,我们要实现这两个方法。
*注意:要将后面的_osx这段删掉。
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations{
if(locations!=nil&&locations.count>0){
CLLocation *newLocation= locations[0];
CLLocationCoordinate2D oldCoordinate = newLocation.coordinate;
NSLog(@"旧的经度:%f,旧的纬度:%f",oldCoordinate.longitude,oldCoordinate.latitude);
//停止获取location
[manager stopUpdatingLocation];
//------------------位置反编码---5.0之后使用-----------------
CLGeocoder *geocoder = [[CLGeocoder
alloc] init];
[geocoder reverseGeocodeLocation:newLocation
completionHandler:^(NSArray *placemarks,
NSError *error){
for (CLPlacemark *place
in placemarks) {
UILabel *label = (UILabel *)[self.window
viewWithTag:101];
label.text = place.name;
NSLog(@"您当前的位置为,%@",place.name);
// 位置名
// NSLog(@"thoroughfare,%@",place.thoroughfare); //
街道
// NSLog(@"subThoroughfare,%@",place.subThoroughfare); //
子街道
// NSLog(@"locality,%@",place.locality); //
市
// NSLog(@"subLocality,%@",place.subLocality); //
区
// NSLog(@"country,%@",place.country); //
国家
}
}];
}
}
这样就可以获取了。
这个过程中,我们需要使用到两个库:CoreLocation.framework 与MapKit.framework。前者是用来获取定位的坐标信息,后者是通过坐标信息来获取地址信息。
首先增加库文件:
通过这三步,然后就打开一个类库来进行查找。
输入关键字,找到对应的类库,加入到我们的项目之中。
可以看到这两个包已经引入到我们的项目之中来了,下面我们在需要使用的地方增加代码。
首先import,然后添加这个delegate
现在我们点击进入这个delegate看一下对应的方法:
看一下比较重要的方法:
1、发生错误的时候调用这个
获取到定位信息后调用这个方法:
这里我们可以看到这里有个解释:osx开始版本为iphone6.0以上,如果是6.0一下的版本该如何呢
我们看到了这个方法,iphone2.0以上iphone6.0以后废弃,所以为了代码健壮性,我们要实现这两个方法。
*注意:要将后面的_osx这段删掉。
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations{
if(locations!=nil&&locations.count>0){
CLLocation *newLocation= locations[0];
CLLocationCoordinate2D oldCoordinate = newLocation.coordinate;
NSLog(@"旧的经度:%f,旧的纬度:%f",oldCoordinate.longitude,oldCoordinate.latitude);
//停止获取location
[manager stopUpdatingLocation];
//------------------位置反编码---5.0之后使用-----------------
CLGeocoder *geocoder = [[CLGeocoder
alloc] init];
[geocoder reverseGeocodeLocation:newLocation
completionHandler:^(NSArray *placemarks,
NSError *error){
for (CLPlacemark *place
in placemarks) {
UILabel *label = (UILabel *)[self.window
viewWithTag:101];
label.text = place.name;
NSLog(@"您当前的位置为,%@",place.name);
// 位置名
// NSLog(@"thoroughfare,%@",place.thoroughfare); //
街道
// NSLog(@"subThoroughfare,%@",place.subThoroughfare); //
子街道
// NSLog(@"locality,%@",place.locality); //
市
// NSLog(@"subLocality,%@",place.subLocality); //
区
// NSLog(@"country,%@",place.country); //
国家
}
}];
}
}
这样就可以获取了。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- CSS浮动和定位学习笔记
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Flex中怎么给表格中的滚动条定位避免刷新回到原处
- 一个JavaScript操作元素定位元素的实例
- js中的如何定位固定层的位置
- JS弹出层单纯的绝对定位居中示例代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- JavaScript网页定位详解
- .net平台推送ios消息的实现方法
- 在Android里完美实现基站和WIFI定位
- android 定位的4种方式介绍
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解