地图定位5-定位实现方案

1. 标准定位服务

  • 基于gps/蓝牙/基站/wifi定位, 具体使用哪种,苹果有自己规则
  • 优点: 定位精确度高
  • 缺点: 程序关闭,就没法获取位置 ,而且耗电

2. 显著位置变化定位服务

  • 基于 基站定位, 必须要求设备有电话模块
  • 优点: 当app被完全关闭时,也可以接收到位置通知,并让app进入到后台处理
  • 缺点: 定位精度低

应用场景:

  1. 如果要求定位及时,精度较高,并且运行时间较短,可使用标准定位;

  2. 如果长时间监控用户位置,用户移动速度比较快(例如打车软件),可使用后者

单次定位

requestLocation 头文件:

  • 该服务将尝试确定定位精度根据desiredaccuracy属性。定位更新将通过标准的代理回调

  • 如果最佳的可用定位具有较低的精度,那么它将在超时时通过标准的代理回调。

  • 如果没有定位可以确定,回调代理方法LocationManager:didfailwitherror:将交付错误定位不明。

  • 只能有一个突出的定位的要求,该方法不能同时使用startUpdatingLocation() 或 allowDeferredLocationUpdates。调用这些方法将立即取消定位请求。方法stopUpdatingLocation() 可以用来明确取消请求。

  • 代码: [self.locationM requestLocation];

  • 功能:获取一次位置信息

实现逻辑

  • (1) 按照定位精确度从低到高进行排序,逐个进行定位.如果在有效时间内, 定位到了精确度最好的位置, 那么就把对应的位置通过代理告知外界.
  • (2) 如果获取到的位置不是精确度最高的那个,也会在定位超时后,通过代理告诉外界.

注意事项:

1.必须实现CLLocationManagerDelegate代理方法

//当定位失败的时候会调用该方法
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        print("定位失败")
    }

2.不能与startUpdatingLocation()方法同时使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容