文档章节

iOS开发 在google地图上显示自己的位置,值得收藏

baisou
 baisou
发布于 2013/07/27 11:03
字数 355
阅读 635
收藏 5

一行代码显示你的位置

iOS中的MapKit集成了定位的功能,使用一行代码就可以在google地图上展示出自己当前的位置,代码如下:


-(IBAction) showLocation:(id) sender {
    
    if ([[btnShowLocation titleForState:UIControlStateNormal] 
		 isEqualToString:@"Show My Location"]) {
        [btnShowLocation setTitle:@"Hide My Location" 
						 forState:UIControlStateNormal];
        mapView.showsUserLocation = YES;        
    } else {
        [btnShowLocation setTitle:@"Show My Location" 
						 forState:UIControlStateNormal];
        mapView.showsUserLocation = NO;
    }    
}


关键的代码就是:mapView.showUserLocation=YES.

使用CLLocationManager和MKMapView

还有就是通过CoreLocation框架写代码去请求当前的位置,一样也非常简单:

第一步:创建一个CLLocationManager实例

CLLocationManager *locationManager = [[CLLocationManager alloc] init];


第二步:设置CLLocationManager实例委托和精度


locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest;


第三步:设置距离筛选器distanceFilter,下面表示设备至少移动1000米,才通知委托更新


locationManager.distanceFilter = 1000.0f;


或者没有筛选器的默认设置:


locationManager.distanceFilter = kCLDistanceFilterNone;


第四步:启动请求


[locationManager startUpdatingLocation];


使用下面代码停止请求:


[locationManager stopUpdatingLocation];

CLLocationManagerDelegate委托


这个委托中有:locationManager:didUpdateToLocation: fromLocation方法,用于获取经纬度。

可以使用下面代码从CLLocation 实例中获取经纬度


CLLocationDegrees latitude = theLocation.coordinate.latitude; 
CLLocationDegrees longitude = theLocation.coordinate.longitude;


使用下面代码获取你的海拔:


CLLocationDistance altitude = theLocation.altitude;


使用下面代码获取你的位移:


CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];


总结:本文主要是讲解了如何在iOS设备google地图上展示自己的当前位置。

© 著作权归作者所有

共有 人打赏支持
baisou
粉丝 3
博文 71
码字总数 65407
作品 0
广州
程序员
谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本

谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本 2018-06-22 12:26编辑: 枣泥布丁分类:程序人生来源:程序师 跨平台Google Flutter预览版本 招聘信息: 图像处理及模式识别工程师 C/C+...

枣泥布丁
06/22
0
0
iOS开发之在google地图上显示自己的位置

一行代码显示你的位置 iOS中的MapKit集成了定位的功能,使用一行代码就可以在google地图上展示出自己当前的位置,代码如下: -(IBAction) showLocation:(id) sender { isEqualToString:@"Sho...

于赟
2012/11/01
0
0
iOS开发之在地图上绘制出你运行的轨迹

iOS中的MapKit集成了google地图api的很多功能加上iOS的定位的功能,我们就可以实现将你运行的轨迹绘制到地图上面。这个功能非常有用,比如汽车的gprs追踪、人员追踪、快递追踪等等。这篇文章...

晨曦之光
2012/03/09
0
0
iOS 12 真的能让旧款 iPhone 速度飞起吗?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnnews/article/details/82757910 去年 9 月,苹果在发布 iOS 11 时曾表示,这是先进移动操作系统 iOS 的又...

CSDN资讯
09/18
0
0
一些关于Flutter的思考和建议

一些关于Flutter的思考和建议 2018-08-02 09:53编辑: 枣泥布丁分类:程序人生来源:程序师 谷歌建议iOS思考Flutter 招聘信息: iOS开发 iOS开发 iOS开发 app开发上架H5技术 app开发技术 图像...

枣泥布丁
08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

flume -- fileChannel简要分析其过程

flume之event写入FileChannel doPut(event)-->获取共享锁后[log.lockShared();]-->FlumeEventPointer ptr = log.put(transactionID, event); 此处的log.put即将transactionID及event进行后续......

-九天-
19分钟前
2
0
Linux与FreeBSD有什么区别?

基础 许多人所称的“Linux”实际上不是 Linux。Linux 从技术上说只是 Linux 内核,典型的 Linux 发行版则包括了 Linux 内核和许多软件。这是为什么 Linux 有时被称为 GNU/Linux。事实上,许多...

linux-tao
27分钟前
1
0
jQuery学习笔记180924

jQuery - AJAX 简介 什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示...

颖伙虫
40分钟前
1
0
springboot整合vue小试牛刀

序 本文主要研究一下如何在springboot工程整合vue maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-we......

go4it
41分钟前
1
0
使用python的profiler工具

主要用来检测python coding的执行时间 fly profiler

steel7c4
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部