CoreLocation---iOS中的位置信息

在iOS系统中, 使用CoreLocation可以获取到用户当前位置, 以及设备移动信息.

基本步骤:

  1. import CoreLocation,
  2. ViewController 继承 CLLocationManagerDelegate 协议,
  3. 实现CLLocationManager的didUpdateLocations, didUpdateToLocation等方法,
  4. 开始定位: 调用CLLocationManager的startUpdatingLocation方法.
  5. 设备自身的定位要开启.

ViewController

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

    @IBOutlet weak var latitudeLabel: UILabel!
    @IBOutlet weak var longitudeLabel: UILabel!

    let locationManager: CLLocationManager = CLLocationManager()

    var currentLocation: CLLocation!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.distanceFilter = kCLLocationAccuracyKilometer
    }

    override func viewWillAppear(animated: Bool) {
        locationManager.startUpdatingLocation()
        println("start location")
    }

    override func viewWillDisappear(animated: Bool) {
        locationManager.stopUpdatingLocation()
        println("stop location")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
        println("didUpdateLocations")
        currentLocation = locations.last as! CLLocation
        latitudeLabel.text = "\(currentLocation.coordinate.latitude)"
        longitudeLabel.text = "\(currentLocation.coordinate.longitude)"
    }

    func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {
        println("didUpdateToLocation")
    }

    func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
        println("didFailWithError")
    }
}

模拟器定位设置

使用iPhone simulator时, 最初只看到打印”start location”, 即没有成功调用didUpdateLocations.

原因在于simulator默认将定位关闭, 需要我们自己打开.

1. 打开定位调试选项, 这里, 我们可以选择Apple:

2. 设置simulator中的Settings->Privacy->Location中的定位选项, 设为always: 3. 回到APP界面, 即可看到位置信息:
4. 我们也可以自己选取模拟位置, 如选择Hong Kong: 5. 可以看到, 对应模拟位置的经纬度信息:
- -

6. 我们也可以自行输入经纬度值来设置位置:

CoreLocation的基本使用就是以上这些了, 更加复杂的以后再补充了.

时间: 2024-12-07 18:14:13

CoreLocation---iOS中的位置信息的相关文章

iOS定位和位置信息获取

要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用.在Core Location中主要包含了定位.地理编码(包括反编码)功能. 定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位的话,那么打开软件后就会自动锁定到当前位置,如果用户手机移动那么当前位置也会跟随着变化.要实现这个功能需要使用Core Loactio

Android"挂逼"修炼之行---微信中定位照片的位置信息插件开发详解

一.前言 最近关于微信中,朋友之间发送原图就可能暴露你的位置信息,其实这个问题不在于微信,微信是为了更好的体验效果,才有发送原图功能,而对于拍照,发送普通图片微信后台都会过滤图片的exif信息,这样就不会携带位置信息了.我们本身用手机自带的相机拍摄照片默认都是会在图片中添加位置信息的.当然我们也可以手动的关闭这个功能.这一点个人觉得不能怪微信.因为更好的逆向学习,和用户体验,本文将开发一套更加好用的插件,就是选择图片直接利用微信自带的地图功能,定位图片位置.这个过程会很麻烦.但是本文会逐一详细介

android黑科技系列——微信定位聊天记录中照片的位置信息插件开发详解

一.前言 最近关于微信中,朋友之间发送原图就可能暴露你的位置信息,其实这个问题不在于微信,微信是为了更好的体验效果,才有发送原图功能,而对于拍照,发送普通图片微信后台都会过滤图片的exif信息,这样就不会携带位置信息了.我们本身用手机自带的相机拍摄照片默认都是会在图片中添加位置信息的.当然我们也可以手动的关闭这个功能.这一点个人觉得不能怪微信.因为更好的逆向学习,和用户体验,本文将开发一套更加好用的插件,就是选择图片直接利用微信自带的地图功能,定位图片位置.这个过程会很麻烦.但是本文会逐一详细介

iOS中崩溃调试的使用和技巧总结 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博 在iOS开发调试过程中以及上线之后.程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就须要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比較常见的. 如今网上有非常多关于解析崩溃信息的博客.可是大多质量參差不齐,或者有些细节没有注意到.今天写一篇博客总结一下我对崩溃调试的使用和技巧,假设有哪些错误或遗漏.还请指点.谢谢. 获取崩溃信息 在iOS中获取崩溃信息的方式有非常多,比較常见的

iOS中的预编译指令的初步探究

看到非常好的两篇技术文,转来方便自己查看. 转自:http://www.cnblogs.com/daiweilai/p/4234336.html 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己,自己又会吓尿(恐怖谷效应),人类真是奇葩:奇葩的我们在20世纪创造了改变世界的东西——计算机(电脑),不用怀疑,这货当然也是仿生学!这货哪里长得像人了

iOS中的预编译指令

iOS中的预编译指令的初步探究 目录[+] 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己,自己又会吓尿(恐怖谷效应),人类真是奇葩:奇葩的我们在20世纪创造了改变世界的东西——计算机(电脑),不用怀疑,这货当然也是仿生学!这货哪里长得像人了??别不服,先听我说完,先把你的砖头放下.狭义的仿生学是外形上仿生嘛,其实广义上仿生学还可以原理的仿生

iOS项目开发实战——使用CoreLocation获取当前位置信息

随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息.位置服务已经是当前的热门应用如微信.陌陌等社交应用的杀手锏.而在iOS开发中,苹果已经给我们提供了一个位置接口.CoreLocation,我们能够使用该接口方便的获得当前位置的经纬度信息.详细实现例如以下: (1)新建基于Swift的iOS项目.在ViewController中导入CoreLocation接口: import CoreLocation (2)在ViewController类中实现例如以下: import U

定位 - CoreLocation - 打印位置信息

1. 导入框架 <CoreLocation.framework>, 引入头文件 import <CoreLocation/CoreLocation.h>; 2. 创建管理者对象 (strong) #import "ViewController.h" @interface ViewController ()<CLLocationManagerDelegate> /**  定位管理者 ***/ @property (nonatomic, strong)

IOS中CoreLocation框架地理定位

1.CoreLocation框架使用前提: #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是CL ,CoreLocation中使用CLLocationManager对象来做用户定位 2.CLLocationManager的常用操作: 开始用户定位 - (void)startUpdatingLocation; 停止用户定位 - (void) stopUpdatingLocation; 当调用了startUpdatin