简易的IOS位置定位服务

有时一些小的需求。事实上仅仅是须要得知当前IOS APP使用的地点。有些仅仅是想精确到城市级别,并不须要不论什么地图。

有了下面的简易实现:

@interface MainViewController ()<CLLocationManagerDelegate>

....

@end

@implementation MainViewController

- (void)InitLocation {

//初始化定位服务管理对象

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

self.locationManager.delegate = self;

self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;

self.locationManager.distanceFilter = 1000.0f;

}

/*

当中位置的精确性有例如以下几个级别,越是精确,程序回调就越慢!当前的样例仅仅是到城市级别,所以使用kCLLocationAccuracyThreeKilometers

extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation
__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);

extern const CLLocationAccuracy kCLLocationAccuracyBest;

extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;

extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;

extern const CLLocationAccuracy kCLLocationAccuracyKilometer;

extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;

*/

- (void) viewWillAppear:(BOOL)animated{

//開始定位

if(isSetAddress == FALSE){

dispatch_async(dispatch_get_main_queue(),
^{

[self InitLocation];

[self.locationManager requestWhenInUseAuthorization];

[self.locationManager startUpdatingLocation];

});

}

}

#pragma mark Core Location托付方法用于实现位置的更新,能够得到经纬度,省、城市、街道

- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:

(NSArray *)locations

{

CLLocation * currLocation = [locations lastObject];

NSLog(@"latitude=%3.5f, longitude=%3.5f,
altitude=%3.5f", currLocation.coordinate.latitude,
currLocation.coordinate.longitude, currLocation.altitude);

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

[geocoder reverseGeocodeLocation:currLocation

completionHandler:^(NSArray *placemarks, NSError *error)
{

if ([placemarks count]
> 0) {

CLPlacemark *placemark = placemarks[0];

NSDictionary *addressDictionary = placemark.addressDictionary;

NSString *address = [addressDictionary objectForKey:(NSString *) kABPersonAddressStreetKey];

address = address == nil ?

@"":
address;

NSString *state = [addressDictionary objectForKey:(NSString *) kABPersonAddressStateKey];

state = state == nil ? @"":
state;

NSString *city = [addressDictionary objectForKey:(NSString *) kABPersonAddressCityKey];

city = city == nil ? @"":
city;

NSLog(@"Place description:
%@ \n%@ \n%@",state, address,city);

self.userAddress =
[[NSString alloc] initWithFormat:@"%@",
city];

dispatch_async(dispatch_get_main_queue(),
^{

NSLog(@"SetLiveShowAddress
start");

int ret = SetLiveShowAddress(city,
address);

if(ret == 0){

isSetAddress = TRUE;

[self.locationManager stopUpdatingLocation];

}

NSLog(@"SetLiveShowAddress
end");

});

}

}];

}

- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error

{

NSLog(@"error: %@",error);

}

@end

时间: 2024-10-19 08:48:54

简易的IOS位置定位服务的相关文章

iOS开发 定位服务与地图

概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.今天就和大家一起看一下iOS如何进行地图和定位开发. 定位 地图 定位 要实现地图.导航功能,往往需要先熟悉定位功能,在iO

iOS开发-定位服务和地理围栏

一.获得用户的位置使用CoreLocation框架.1.如果你的应用基于位置来正确运行,你应该在你的Info.plist中包括UIRequiredDeviceCapabilities键.App Store使用这个信息来阻止没有定位的设备下载该应用.UIRequiredDeviceCapabilities键对应一个字符串数组,包括:1)location-services字符串--如果你请求一般的定位服务2)gps--如果你请求GPS级的精度如果你的应用需要定位,但是没有定位也能正常运行,就不要包含

iOS开发-定位服务iOS8.0以上授权

if ([UIDevice currentDevice].systemVersion.doubleValue > 8.0) { [self.locMgr requestAlwaysAuthorization]; } else { [self.locMgr startUpdatingLocation]; } - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizati

ios CoreLocation定位服务

CoreLocation导入框架  :#import <CoreLocation/CoreLocation.h> 需要了解的基本的属性和方法: 属性: 定位管理者:CLLocationManager 请求定位权限:requestAlwaysAuthorization 开始获取位置:startUpdatingLocation 停止获取位置:stopUpdatingLocation 授权认证状态:CLAuthorizationStatus 过滤定位的距离:distanceFilter 定位所需精度

LBS(位置定位服务)发布小清新版本

web前端对我来说始终是一个短板,当然在不追求全栈的情况下,我也觉得没必要多精通,至少对于平常调整已经比较熟悉了.但是这次因为将lbs的页面外包给别人,而因为各种各样的原因导致交付时间一拖再拖,让人非常失望,大感掌握前端的必要性.总算在前几天交付了,使用的是bootstrap,虽然这个前端框架之前就又耳闻,但是因为公司一直使用ext,也没有涉略.这次没办法,已经答应了合作伙伴在4月份之前搞出来,所以上一周边学bootstrap边做,现在发现bootstrap就是我之前一直想找的框架.为什么这么说

iOS定位服务与地图开发(1)---获取经纬度

定位服务是通过GPS等方式查找定位自己的位置的,再通过地图标注出来. 在iOS中定位服务和地图开发是使用两套API分别完成的. 1.定位服务: iOS系统提供3种不同定位途径: 1>WiFi定位:通过查询一个WiFi路由器的地理位置信息,iPhone.iPod Touch.iPad都可以采用. 2>蜂窝式移动电话基站定位:通过移动运营商基站定位 3>GPS卫星定位:通过3~4颗GPS卫星位置定位,最为准确,但是耗电量大 iOS不像Android系统在定位服务编程时可以指定采用哪种途径进行

iOS 增强现实教程:基于位置定位

原文:Augmented Reality iOS Tutorial: Location Based 作者:Jean-Pierre Distler 译者:kmyhy 更新说明:本教程由 Jean-Pierre Distler 升级至 Swift3 和 iOS 10. 增强现实是一种很酷的流行技术,你可以通过特定设备(比如iPhone 摄像头或者微软的 Hololens)来观察世界,这个设备会在真实世界的画面上叠加额外的信息. 我猜你也许看过标志物跟踪之类的 App,在这个 App 中,当你将摄像头

定位服务

前言: 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边:类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.在产品研发中有两个专业术语需要大家知道:一是LBS(Location Based Service)基于定位的服务,二是So

iOS设备定位

一.iOS谈到定位 1.SignInSignOutViewController.h @interface SignInSignOutViewController : UIViewController<CLLocationManagerDelegate>{ CLLocationManager *_locationManager; // 纬度 float _latitude; // 经度 float _longitude; } @property (nonatomic,retain) CLLoca