博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 地图(MKMapView)
阅读量:5210 次
发布时间:2019-06-14

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

//定位  需要在info中添加NSLocationWhenInUseUsageDescription

if ([[UIDevice currentDevice].systemVersion doubleValue]>=8.0) {        //获取权限        [self.locationManager requestWhenInUseAuthorization];    }    //开始定位    [self.locationManager startUpdatingLocation];//懒加载-(CLLocationManager *)locationManager{        if (!_locationManager) {                _locationManager=[[CLLocationManager alloc]init];                _locationManager.delegate=self; //    }    return _locationManager;    }

 

 创建地图

self.mapView =[[MKMapView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];    //1.跟踪用户位置(显示用户的具体位置)    self.mapView.userTrackingMode =MKUserTrackingModeFollow;        //2.设置地图类型//    self.mapView.mapType=MKMapTypeStandard;        //设置代理    self.mapView.delegate=self;    //    self.mapView.showsUserLocation=YES;        [self.view addSubview:self.mapView];#pragma mark - NKMapViewDelegate//当用户的位置更新,就会调用(不断地监控用户的位置,调用频率特别高)- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{  //  MKUserLocation  大头针模型对象    NSLog(@"%f %f",userLocation.location.coordinate.longitude ,userLocation.location.coordinate.latitude);    userLocation.title=@"天苍苍野茫茫风吹草地见牛羊";    userLocation.subtitle=@"床前光,地上霜";        //设置地图的中心点 ( 用户所在的区域)   // [mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];]         //设置地图的显示范围    //设置跨度    MKCoordinateSpan span =MKCoordinateSpanMake(0.5,0.5);        CLLocationCoordinate2D center = userLocation.location.coordinate;    mapView.region=MKCoordinateRegionMake(center, span);}//获取当前跨度-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{            NSLog(@"%f %f",mapView.region.span.latitudeDelta,mapView.region.span.longitudeDelta);}

 

添加大头针 (自己定义 需要创建一个遵守MKAnnotation协议的类)

#import 
#import
@interface WBAnnotation : NSObject
@property (nonatomic,assign) CLLocationCoordinate2D coordinate;@property (nonatomic, copy) NSString *title;@property (nonatomic, copy) NSString *subtitle;

 

创建大头针

//创建手势    UITapGestureRecognizer * longpress =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapMapVIew:)];     //添加手势    [self.mapView addGestureRecognizer:longpress];//响应手势事件- (void)tapMapVIew:(UITapGestureRecognizer * )tap{        //1.获得用户在地图点击的位置(x,y)    CGPoint point =[tap locationInView:tap.view];        //2.将数学坐标转为 地理经纬度坐标     CLLocationCoordinate2D coordinate= [self.mapView convertPoint:point toCoordinateFromView:self.mapView];    //3.创建大头针模型,添加大头针到地图上(自定义的大头针类)    WBAnnotation *anno =[[WBAnnotation alloc]init];    anno.coordinate =coordinate;    anno.title=@"大哥";    anno.subtitle=@"你好棒";        [self.mapView addAnnotation:anno];    }

 

转载于:https://www.cnblogs.com/wangbinbin/p/4810419.html

你可能感兴趣的文章
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>
通过beego快速创建一个Restful风格API项目及API文档自动化(转)
查看>>
解决DataSnap支持的Tcp长连接数受限的两种方法
查看>>
Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
查看>>
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>
Hibernate中inverse="true"的理解
查看>>
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
BS调用本地应用程序的步骤
查看>>
常用到的多种锁(随时可能修改)
查看>>
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>
Linq使用Join/在Razor中两次反射取属性值
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>