博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简述Core Location定位功能
阅读量:6970 次
发布时间:2019-06-27

本文共 2029 字,大约阅读时间需要 6 分钟。

移动设备的定位功能很强大,可以做很多有意思的应用,比如LBS,GPS等等。

Core Location依赖于3种不同的方式,每种方式在给定的平台上可能可用,也可能不可用。这些方式受每种设备内置功能的限制。

1.Wi-Fi定位扫描本地路由 器,使用它们的MAC地址搜索一个中心位置数据库,所有iPhone和iPod touch平台都免费提供了这种定位方式。

2.蜂窝定位则依赖于天线,但是只有iPhone上才有这样的天线。这种技术利用本地蜂窝基站进行三角定位,这些基站的位置是在手机公司安装基站时就确 定的。最后一种、也是最准确的一种定位方式是GPS,只有第二代和更新的iPhone才提供GPS。第一代iPhone没有内置GPS,目前所有iPod touch设备也没有提供GPS。

3.第三代iPhone 3G S引入了一个内置的罗盘(通过一个磁强计),并提供了用于支持它的Core Location API。

下面说一下如何在程序中使用

首先,把CoreGraphics.framework 加入到framework

其次,声明中要加入<CLLocationManagerDelegate>协议

然后,创建一个位置管理器CLLocationManager *locationManager;

self.locationManager= [[CLLocationManageralloc]init];//初始化

locationManager.delegate=self;//委托自己

locationManager.desiredAccuracy=kCLLocationAccuracyBest;//精度设定,有好几种选择(kCLLocationAccuracyNearestTenMeters,kCLLocationAccuracyHundredMeters,kCLLocationAccuracyKilometer,kCLLocationAccuracyThreeKilometers精度逐渐降低)

[locationManagerstartUpdatingLocation];//开启位置更新

//重写两个位置服务器委托方法

#pragma mark -

#pragma mark CLLocationManagerDelegate Methods

- (void)locationManager:(CLLocationManager*)manager

didUpdateToLocation:(CLLocation*)newLocation

fromLocation:(CLLocation*)oldLocation {

if(startingPoint==nil)

self.startingPoint= newLocation;

newLocation.coordinate.latitude;//经度

newLocation.coordinate.longitude;//纬度

newLocation.horizontalAccuracy;//水平精度

newLocation.altitude;//高度

newLocation.verticalAccuracy;//垂直精度

CLLocationDistancedistance = [newLocation

getDistanceFrom:startingPoint];

NSString*distanceString = [[NSStringalloc]

initWithFormat:@”%gm”, distance];//格式化移动距离

distanceTraveledLabel.text= distanceString;

[distanceStringrelease];

}

- (void)locationManager:(CLLocationManager*)manager

didFailWithError:(NSError*)error {

NSString*errorType = (error.code ==kCLErrorDenied) ?

@”Access Denied”:@”Unknown Error”;

UIAlertView*alert = [[UIAlertViewalloc]

initWithTitle:@”Error getting Location”

message:errorType

delegate:nil

cancelButtonTitle:@”Okay”

otherButtonTitles:nil];

[alertshow];

[alertrelease];

}

下次说一下如何利用已经得到的经纬度获取地区和城市名

转载于:https://www.cnblogs.com/pengyingh/articles/2359501.html

你可能感兴趣的文章
免费空间上的mysql数据库怎么连接?
查看>>
hdu2222 Keywords Search
查看>>
java 发送post请求参数中含有+会转化为空格的问题
查看>>
tomcat生产部署关键參数设置
查看>>
正则表达式,字符串中需要两个反斜杠“\\d”
查看>>
Java-idea-常用技巧-转maven,解决包依赖冲突
查看>>
统计学中RR OR AR HR的区别
查看>>
vue加百度统计代码(亲测有效)
查看>>
判断Json字符串返回类型 对象 或者 数组
查看>>
SpringCloud2.0入门3-新的eureka依赖
查看>>
Java基础-SSM之mybatis多对多关联
查看>>
Google展示“配方搜索”概念 利用语义搜索学做菜
查看>>
窗体界面设计01
查看>>
IOS开发技巧之──字数统计函数
查看>>
Cocos2d API 解析之Texture2d
查看>>
Java编程中“为了性能”尽量要做到的一些地方
查看>>
C# 使用OLEDB读取不同版本Excel数据的连接字符串
查看>>
设置tomcat启动超时,不会自动停止
查看>>
005商城项目:ssm框架的整合成功之后的问题:使用maven的tomcat插件时的debug
查看>>
poj2126
查看>>