带有当前位置坐标的地图
在.h中加入属性
//创建属性
@property(nonatomic,strong)NSString *provie;
导入头文件
//导入系统类
#import <MapKit/MapKit.h>
//导入获取经纬度类
#import <CoreLocation/CoreLocation.h>
//设置协议
@interface MapUIkit ()
<MKMapViewDelegate,CLLocationManagerDelegate>
//创建地图对象
@property(nonatomic,strong)MKMapView *MapView;
@property(nonatomic,strong)CLLocationManager *lomanger;
@end
@implementation MapUIkit
(void)viewDidLoad {
[super viewDidLoad];
//设置导航标题
self.navigationItem.title =self.provie;
//设置右侧按钮
//self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@“省会定位” style:UIBarButtonItemStyleDone target:self action:@selector(YOU:)];
//实例化
self.MapView = [[MKMapView alloc] initWithFrame:self.view.frame];
//设置代理
self.MapView.delegate = self;
//设置地图样式
self.MapView.mapType = MKMapTypeStandard;
//加载视图
[self.view addSubview:self.MapView];
//设置按钮
UIButton *butt = [UIButton buttonWithType:UIButtonTypeCustom];
//设置
butt.frame = CGRectMake(40, 600,50, 50);
//添加文字
[butt setTitle:@“当前位置” forState:UIControlStateNormal];
butt.titleLabel.font = [UIFont systemFontOfSize:10];
//添加点击事件
[butt addTarget:self action:@selector(dian:) forControlEvents:UIControlEventTouchUpInside];
butt.layer.masksToBounds = YES;
butt.layer.cornerRadius = 25;
butt.backgroundColor = [UIColor greenColor];
//添加视图
[self.view addSubview:butt];
//实例化经纬度类
self.lomanger = [[CLLocationManager alloc] init];
//申请用户授权用户进入后台不在授权
[self.lomanger requestWhenInUseAuthorization];
}(void)YOU:(id)seb{
//
CLGeocoder *g = [[CLGeocoder alloc] init];
//将地址字符串转换为位置的经纬度
[g geocodeAddressString:self.provie completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
//获取位置随便展示在地图上
CLPlacemark *place = [placemarks lastObject];
//获取位置
CLLocation *loc =place.location;
CLLocationCoordinate2D coor = loc.coordinate;
//定位
MKPointAnnotation *anne = [[MKPointAnnotation alloc] init];
//设置挫钉
anne.coordinate = coor;
//回到主线程
dispatch_async(dispatch_get_main_queue(), ^{
//设置让地图显示区域缩小
MKCoordinateRegion rgin =MKCoordinateRegionMakeWithDistance(coor, 10, 10);
//添加到视图
[self.MapView setRegion:rgin];
[self.MapView addAnnotation:anne];
});
}];
}
//实现点击方法(void)dian:(id)sender{
//设置代理
self.lomanger.delegate = self;
//开始获取位置信息 调用此方法后协议中的方法才会执行[self.lomanger startUpdatingLocation];
}
//实现代理方法(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
//创建对象获取当前获取最后一个元素
CLLocation *curloc = [locations lastObject];
//创建结构体 获取经纬度
CLLocationCoordinate2D curCoor = curloc.coordinate;
self.lomanger.delegate = nil;
//输出经纬度
NSLog(@“经度%g,纬度%g”,curCoor.longitude,curCoor.latitude);//设置让地图显示区域缩小
MKCoordinateRegion rgin =MKCoordinateRegionMakeWithDistance(curCoor, 30, 30);
//设置动画并添加
[self.MapView setRegion:rgin animated:YES];
//将地址经纬度转换为字符串
CLGeocoder *Geder = [[CLGeocoder alloc] init];
//设置方法
[Geder reverseGeocodeLocation:curloc completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
//创建异步队列回到主线程
dispatch_async(dispatch_get_main_queue(), ^{
//获取最后一个经纬度转换为字符串
CLPlacemark *place = [placemarks firstObject];
//设置大头针
MKPointAnnotation *pino = [[MKPointAnnotation alloc] init];
//将获取的地址名字给大头针
pino.title = place.name;
//设置大头针的位置
pino.coordinate = curCoor;
//添加到地图上
[self.MapView addAnnotation:pino];
});
}];
}
//实现大头针点击事件(nullable MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotation{
//从MAPView找一块可用的内存
MKPinAnnotationView *kl =[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@“1”];
//设置动画
kl.animatesDrop = YES;
//设置
kl.canShowCallout = YES;
//返回内容
return kl;
}
@end
带有当前位置坐标的地图相关推荐
- 使用matlab和GMT联合绘制带有省界的中国地图
使用matlab和GMT联合绘制带有省界的中国地图 1下载省级边界数据,地址:http://nfgis.nsdi.gov.cn/nfgis/chinese/c_xz.htm 网站存储有多级边界数据以及 ...
- 【githubboy】如何使用 QGIS 和 Blender 软件,制作带有阴影效果的浮雕地图
GeoBlender,GitHub 上的一个开源教程.主要教你如何使用 QGIS 和 Blender 软件,制作带有阴影效果的浮雕地图.GeoBlender,GitHub 上的一个开源教程.主要教你如 ...
- 利用ztree开发带有滑动条的地图图层列表
之前在写安卓移动端时候,有这样的一个对地图多个图层管理界面,即在单独写了一个图层面板,里面列举app的所有图层,如果懂得Android开发方面的小伙伴,就是一个ListView里面添加了SeekBar ...
- Vue3 + Echarts 5 绘制带有立体感流线中国地图
本文绘制的地图效果图如下: 一.Echarts 使用五部曲 1.下载并引入 echarts Echarts 已更新到了 5.0 版本,安装完记得检查下自己的版本是否是 5.0 . npm instal ...
- 带有审图号的区位图制作
一. AI软件的安装 找到安装包文件夹中的Set-up应用程序,以管理员身份运行: 进入安装界面后,点击:继续,进行安装软件,如果需要修改安装位置,点击旁边的文件夹图标修改即可,具体操作如下图: 安装 ...
- 谷歌查询mysql,谷歌地图:使用mysql查询更新标记不起作用
我开始使用https://developers.google.com/maps/articles/phpsqlajax_v3并正在使用 https://developers.google.com/ma ...
- 基于腾讯地图定位组件实现周边POI远近排序分布图
前言 地图应用非常广泛,目前地图服务,都提供地图操作.标注.地点搜索.出行规划.地址解析.街景等接口,功能非常丰富.在实际开发过程中,各有优劣.本次基于需求,使用腾讯位置服务作为一个公用厕所位置标注的 ...
- 基于腾讯地图定位组件实现周边公用厕所远近排序分布图
前言 地图应用非常广泛,目前地图服务,都提供地图操作.标注.地点搜索.出行规划.地址解析.街景等接口,功能非常丰富.在实际开发过程中,各有优劣.本次基于需求,使用腾讯位置服务作为一个公用厕所位置标注的 ...
- apicloud (第五篇 bmap百度地图一键回到当前位置)
前言:最近一直在做apicloud 地图这一块,所以想分享一下自己遇到的坑. 功能介绍:打开地图,首先获取用户的当前位置,并标识一下.当用户浏览到其他区域时(比如从当前位置滑到了城阳区),可以一键返 ...
最新文章
- 异步IO(协程,消息循环队列)
- Windows Phone 7 学习网址总结
- php 论坛_推荐一个基于话题的高性能轻型开源PHP论坛程序
- android137 360 双击三击事件
- 如何在 Centos7 x86_64下将vim一键配置为一款强大的C++,IDE
- mysql创建独立表空间_InnoDB独立表空间
- Python基础(一)--初识Python
- Redis 高可用性实践
- CSU 1116 Kingdoms
- c语言单向循环链表实现增删,C语言单向非循环链表增删查改实现
- 铭瑄显卡不支持Linux,铭瑄主板bios设置显卡方法
- numpy常用函数总结 | 菜鸟教程
- 算法:二叉树从树叶到根部每层构成的数组队列107. Binary Tree Level Order Traversal II
- EOS官方钱包keosd
- 如何学习一门新技术(经验分享)
- Android跳转qq进行聊天
- # 2gether 在一起 # 2 号星际碎片现身,全军出击!
- Web前端—01HTML超文本标记语言
- html:(9):blockquote引用和br换行
- python测试培训 马哥
热门文章
- xbox控制台小助手服务器连接已阻止,win10系统xbox控制台小帮手无法登录,提示目前您无法登录怎么办...
- 最初不相识,最终不相认
- 凯翔:可以同时替代Nimble和Nutanix的存储
- 基于图像识别测试手机浏览器打开网页首屏时间的方法
- 登录谷歌账号出现浏览器不安全的提示
- 一个简约的Android相册(支持多选)
- 平面模拟变形--ps
- background-clip:从box-sizing:border-box属性入手,来了解盒模型
- 面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题
- c语言设计计算器的意义,C语言结课设计之计算器功能