在.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

带有当前位置坐标的地图相关推荐

  1. 使用matlab和GMT联合绘制带有省界的中国地图

    使用matlab和GMT联合绘制带有省界的中国地图 1下载省级边界数据,地址:http://nfgis.nsdi.gov.cn/nfgis/chinese/c_xz.htm 网站存储有多级边界数据以及 ...

  2. 【githubboy】如何使用 QGIS 和 Blender 软件,制作带有阴影效果的浮雕地图

    GeoBlender,GitHub 上的一个开源教程.主要教你如何使用 QGIS 和 Blender 软件,制作带有阴影效果的浮雕地图.GeoBlender,GitHub 上的一个开源教程.主要教你如 ...

  3. 利用ztree开发带有滑动条的地图图层列表

    之前在写安卓移动端时候,有这样的一个对地图多个图层管理界面,即在单独写了一个图层面板,里面列举app的所有图层,如果懂得Android开发方面的小伙伴,就是一个ListView里面添加了SeekBar ...

  4. Vue3 + Echarts 5 绘制带有立体感流线中国地图

    本文绘制的地图效果图如下: 一.Echarts 使用五部曲 1.下载并引入 echarts Echarts 已更新到了 5.0 版本,安装完记得检查下自己的版本是否是 5.0 . npm instal ...

  5. 带有审图号的区位图制作

    一. AI软件的安装 找到安装包文件夹中的Set-up应用程序,以管理员身份运行: 进入安装界面后,点击:继续,进行安装软件,如果需要修改安装位置,点击旁边的文件夹图标修改即可,具体操作如下图: 安装 ...

  6. 谷歌查询mysql,谷歌地图:使用mysql查询更新标记不起作用

    我开始使用https://developers.google.com/maps/articles/phpsqlajax_v3并正在使用 https://developers.google.com/ma ...

  7. 基于腾讯地图定位组件实现周边POI远近排序分布图

    前言 地图应用非常广泛,目前地图服务,都提供地图操作.标注.地点搜索.出行规划.地址解析.街景等接口,功能非常丰富.在实际开发过程中,各有优劣.本次基于需求,使用腾讯位置服务作为一个公用厕所位置标注的 ...

  8. 基于腾讯地图定位组件实现周边公用厕所远近排序分布图

    前言 地图应用非常广泛,目前地图服务,都提供地图操作.标注.地点搜索.出行规划.地址解析.街景等接口,功能非常丰富.在实际开发过程中,各有优劣.本次基于需求,使用腾讯位置服务作为一个公用厕所位置标注的 ...

  9. apicloud (第五篇 bmap百度地图一键回到当前位置)

    前言:最近一直在做apicloud  地图这一块,所以想分享一下自己遇到的坑. 功能介绍:打开地图,首先获取用户的当前位置,并标识一下.当用户浏览到其他区域时(比如从当前位置滑到了城阳区),可以一键返 ...

最新文章

  1. 异步IO(协程,消息循环队列)
  2. Windows Phone 7 学习网址总结
  3. php 论坛_推荐一个基于话题的高性能轻型开源PHP论坛程序
  4. android137 360 双击三击事件
  5. 如何在 Centos7 x86_64下将vim一键配置为一款强大的C++,IDE
  6. mysql创建独立表空间_InnoDB独立表空间
  7. Python基础(一)--初识Python
  8. Redis 高可用性实践
  9. CSU 1116 Kingdoms
  10. c语言单向循环链表实现增删,C语言单向非循环链表增删查改实现
  11. 铭瑄显卡不支持Linux,铭瑄主板bios设置显卡方法
  12. numpy常用函数总结 | 菜鸟教程
  13. 算法:二叉树从树叶到根部每层构成的数组队列107. Binary Tree Level Order Traversal II
  14. EOS官方钱包keosd
  15. 如何学习一门新技术(经验分享)
  16. Android跳转qq进行聊天
  17. # 2gether 在一起 # 2 号星际碎片现身,全军出击!
  18. Web前端—01HTML超文本标记语言
  19. html:(9):blockquote引用和br换行
  20. python测试培训 马哥

热门文章

  1. xbox控制台小助手服务器连接已阻止,win10系统xbox控制台小帮手无法登录,提示目前您无法登录怎么办...
  2. 最初不相识,最终不相认
  3. 凯翔:可以同时替代Nimble和Nutanix的存储
  4. 基于图像识别测试手机浏览器打开网页首屏时间的方法
  5. 登录谷歌账号出现浏览器不安全的提示
  6. 一个简约的Android相册(支持多选)
  7. 平面模拟变形--ps
  8. background-clip:从box-sizing:border-box属性入手,来了解盒模型
  9. 面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题
  10. c语言设计计算器的意义,C语言结课设计之计算器功能