iOS定位与地图

定位:

  手机上定位的实现主要有三种方式:基站(附近基站的位置),wifi(所连接路由器的位置),卫星(最准确,也最耗能)。

iOS的定位功能主要是由CLLocationManager类来完成的。这个类属于CoreLocation类库,所以使用定位功能之前,现在头文件中导入该类库。

定位的步骤:  

  1. 通过类方法判断定位服务是否开启,若为NO,则先要提醒用户在手机上设置开启定位服务;

    + (BOOL)locationServicesEnabled

  2. 通过类方法判断授权状态(iOS8之后)。授权状态的返回类型是枚举,大概分为:禁止(任何时候不可以)&在程序运行期间允许&一直允许。若为禁止,则可以给用户发送授权请求,然后等待用户同意或者拒绝;

    + (CLAuthorizationStatus)authorizationStatus  // 返回授权状态

        [_locationManager requestAlwaysAuthorization];  // 请求一直允许授权

    [_locationManager requestWhenInUseAuthorization];  //请求程序运行期间允许授权

  3.创建CLLocationManager实例,并设置一些属性(定位精度,频率等);   

    locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    CLLocationDistance distance = 10.0; //每10米更新

    locationManager.distanceFilter = distance;

  4.设置locationManager对象的代理,并重写代理方法;

    - (void)locationManager:(CLLocationManager *)manager  didUpdateLocations:(NSArray *)locations;

     - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation;

  注意:第一个方法的返回参数是每项为CLLocation类型的数组,

  5.这些都弄完后,就可以开始定位了,最后当使用完定位后记得要停止定位,因为定位是相当消耗性能和电量的。

     [locationManager startUpdatingLocation]; //开始定位

     [locationManager startUpdatingHeading]  //开始导航

地图:

  iOS的地图功能是集成在MapKit框架中的,所以首先要在头文件中导入。

  现在很多地图应用都是一出现地图,正中央就是用户当前所在位置。

使用地图的步骤:
  1. 创建mapView,要使用地图功能,首先要有地图视图。紧接着设置mapView的一些属性,比如地图类型(平面,立体等),跟随类型(不跟随,跟随,跟随且跟随方向)。还可以调用mapView的方法添加标注视图;(大头针视图和tabView里面的cell很相似,都由代理方法返回,都可以复用,都可以自定义)。

  2. 设置mapView的代理,并重写代理方法。代理方法有加载地图结果的处理,还有对地图标注(大头针)的动作处理。

 

时间: 2024-10-09 02:16:05

iOS定位与地图的相关文章

iOS定位和地图

iOS定位和地图功能要用到两个框架:mapkitcoreLocation 两个专门术语:lbs(Location Based Service)基于定位服务的APP和solomo(Social Local Mobile)社交+本地+手机. CoreLocation 1.导入框架,导入头文件. 2.创建CALocationManager对象. 3.设置代理. 4.实现方法 - (void)locationManager:(CLLocationManager *)manager didUpdateLo

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

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

iOS定位服务与地图开发(4)---显示地图

iOS 6之前,苹果使用的是谷歌地图,iOS 6之后,苹果使用了自己的地图(国内好像用的是高德地图),但是API编程接口与iOS 5相比没有太大变化. iOS 应用程序中使用Map Kit API开发地图应用程序,使用MKMapView类作为地图显示视图,其委托协议是MKMapViewDelegate. 1.显示地图: .h文件中代码 #import <MapKit/MapKit.h> @interface YXCViewController <MKMapViewDelegate>

iOS进阶_地图上定位的标志——大头针

一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大头针类,我自定义的为MyAnnotation 大头针: 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的“大头针”.只要一个NSObject类实现MKAnnotation协议就可以作为一个大头针,通常会重写协议中coordinate(标记位置).title(标题).subtitl

iOS定位服务与地图开发(3)---地理信息编码查询

即根据一个NSString的文字描述对象获取相关的地理坐标. 采用CLGeocoder类操作,具体方法: 1>geocodeAddressDictionary:completionHandler: 通过指定一个地址信息字典对象参数进行查询 2>geocodeAddressString:completionHandler:通过指定一个地址信息字符串参数进行查询 3>geocodeAddressString:inRegion:completionHandler:通过制定地址信息字符串和查询范

iOS定位服务与地图开发(2)---地理信息反编码

上节我们通过定位获取了经度和纬度数值,但是一般人很难看懂这些数字. 地理信息反编码:就是根据这些经纬数字返回地点的相关文字描述信息,这些文字描述信息被封装在CLPlacemark类中,我们称这个类为"地标"类. 地理信息反编码使用CLGeocoder类实现,这个类能够实现在地理坐标与地理文字描述信息之间的转换. CLGeocoder类中进行地理信息反编码的方法是:reverseGeocodeLocation: completionHandler: location:是要定位的地理位置对

ios之定位与地图

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

iOS开发系列--地图与定位

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

iOS开发中地图与定位

不管是QQ还是微信的移动client都少不了定位功能,之前在微信demo中没有加入定位功能,今天就写个定位的小demo来了解一下定位和地图的东西. 地图和定位看上去是挺高大上一东西.其有使用方法比TableView简单多了.以下的Demo是用的iOS中自带的地图和定位,当然了也能够用第三方的来载入地图.比方百度地图啥的,在这就不赘述了.今天的博客主要是介绍MKMapView的使用.MapView的使用和其它组件的使用方法差点儿相同.MapView用的是托付回调,在使用mapView的Contro