ios中Core Location跟Map Kit的基本使用
地图类开发应用中,离不开地理位置跟MKMapView的使用,下面就记录下自己在使用这两个东西中学到的。
不过并不是所有苹果的设备都支持地理位置,我们在使用前应该做个判断,代码如下:
BOOL locationAvailabe = [CLLocationManager locationServicesEnabled];
BOOL magnetometerAvailable = [CLLocationManager headingAvailable];
在地理位置中,我们用到主要类就是:CLLocationManager,关于它的常见代码如下:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = ; // 1km
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
if ([CLLocationManager locationServicesEnabled] ) {
[locationManager startUpdatingLocation];
} else {
NSLog(@"Location services not enabled.");
}
通过设置distancFilter我们可以做到只有位置变动在1公里以上的时候才会进行通知,然后我们通过设置delegate,实现自己相应的逻辑,常见实现的两个协议如下:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"Moved from %@ to %@", oldLocation, newLocation);
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"Received Core Location error %@", error);
[manager stopUpdatingLocation];
}
上面就是关于地理位置的常见用法,当然还有CLLocationCoorinate2D类,这是一个关于区域的地理类。
好了,接下来说说MKMapView这个控件,这是一个地图应用常规控件,常用代码如下:
MKMapView.layer.cornerRadius = 10.0; //园角
MKMapView。showsUserLocation = YES;
[MKMapView setRegion: animated:] //使地图显示哪个区域附近的信息
如果我们想在地图控件插上大头针,应该怎么做呢,专业术语就是:Annotating Maps,显示效果如下:

那如何来做到这一点呢,其实关键是我们要实现一个协议,此协议名是:MKAnnotation。
然后通过如下代码
[MKMapView addAnnotation:]
把这个annotation加入到MapView中,运行查看就是上面图中的效果了。
ios中Core Location跟Map Kit的基本使用的更多相关文章
- iOS开发-Core Location和Map Kit
一.Core Location确定物理位置 利用以下3种技术: 1.GPS(最精确的) 2.蜂窝基站ID定位(cell ID Location) 3.WPS(Wi-Fi Positioning Ser ...
- ios中core Plot (2)
#import "ViewController.h" @interface ViewController () //指定要画得view @property(nonatomic,as ...
- Core Location Framework学习
在Apple开发中,尤其是移动设备开发,经常会使用Core Location Framework,这个框架可以使得iOS设备获取当前的地理位置.本文就具体到Core Location 框架中,查看其声 ...
- iOS 苹果自带地图定位Core Location
Core Location是iOS SDK中一个提供设备位置的框架.可以使用三种技术来获取位置:GPS.蜂窝或WiFi.在这些技术中,GPS最为精准,如果有GPS硬件,Core Location将优先 ...
- 关于Core Location-ios定位
IOS中的core location提供了定位功能,能定位装置的当前坐标,同一时候能得到装置移动信息.由于对定位装置的轮询是非常耗电的,所以最好仅仅在非常必要的前提下启动. 当中,最重要的类是CLLo ...
- IOS开发之Core Location
IOS 支持三种检测当前位置的方式:手机基站.Wi-Fi.和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的.一般情况下在室内是无法通过GPS获 取位置信息的,通过Wi-Fi获取位置的原理是通 ...
- Core Location :⽤用于地理定位
Core Location :⽤用于地理定位 在移动互联⽹网时代,移动app能解决⽤用户的很多⽣生活琐事,⽐比如 导航:去任意陌⽣生的地⽅方 周边:找餐馆.找酒店.找银⾏行.找电影院 在上述应⽤用中, ...
- Core Location和MapKit的一些简单使用
Core Location 1. 基本对象是CLLocation,有属性coordinate, altitude, horizontal/vertical Accuracy, timestamp, ...
- 关于ios中的文本操作-简介
来源:About Text Handling in iOS 官方文档 iOS平台为我们提供了许多在app中展示文本和让用户编辑文本的方式.同时,它也允许你在app视图中展示格式化的文本和网页内容.你可 ...
随机推荐
- redis 安装及安装遇到的问题解决
https://blog.csdn.net/jy0902/article/details/19248299 http://q.fireflyclub.org/?/article/24 https:// ...
- eclipse开发文档模板
从files依次向下:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元 ...
- Sqli-labs less 10
Less-10 本关我们从标题就可以看到 <基于时间-双引号>,所以很明显的这关要我们利用延时注入进行,同时id参数进行的是 " 的处理.和less9的区别就在于单引号(')变成 ...
- UVA 147(子集和问题)
Dollars New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10 ...
- 安卓 内存泄漏检测工具 LeakCanary 使用
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 配置 build.gradle dependencies { debugCompile 'com ...
- [BZOJ4861][BJOI2017]魔法咒语(AC自动机+矩阵优化DP)
4861: [Beijing2017]魔法咒语 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 217 Solved: 105[Submit][Sta ...
- 20162307 实验四 Android程序设计
实验四 <Android程序设计> 北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623 姓名:张韵琪 学号:20162307 指导教师:娄佳鹏老师.王 ...
- [Luogu1462]通往奥格瑞玛的道路
题目大意: 一个n个点,m条边的图,每个边有一个边权,每个点也有一个点权. 现在要找一条从1到n的路径,保证边权和不超过b的情况下,最大点权尽量小. 问最大点权最小能是多少? 思路: 二分答案,然后D ...
- mybatis批量update,返回行数为-1
mybatis批量更新返回结果为-1,是由于mybatis的defaultExExecutorType引起的, 它有三个执行器:SIMPLE 就是普通的执行器:REUSE 执行器会重用预处理语句 ...
- [转]MySql中创建序列的方法
CREATE TABLE `my_seq` ( `seq` int(10) NOT NULL default 10000) ENGINE=MyISAM DEFAULT CHARSET=utf8 ...