IOS 自带地图开发
{
//1.定位管理器
_locationManager = [[CLLocationManager alloc] init];
if (![CLLocationManager locationServicesEnabled]) {
MyLog(@"定位服务当前可能尚未打开,请设置打开!");
return;
}
//2.如果没有授权则请求用户授权
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
[_locationManager requestWhenInUseAuthorization];
} else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse) {
//2.1设置代理
_locationManager.delegate = self;
//2.2设置定位精度
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
//2.3设置定位频率
_locationManager.distanceFilter = 100.0;
//2.4开启定位功能
[_locationManager startUpdatingLocation];
}
}
#pragma mark CoreLocation代理
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
CLLocation *location = [locations firstObject];
CLLocationCoordinate2D coordinate = location.coordinate;
{
//反地理编码
CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
CLGeocoder *geoCode = [[CLGeocoder alloc] init];
[geoCode reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
CLPlacemark *placeMark = [placemarks firstObject];
NSDictionary *addressDict = placeMark.addressDictionary;
NSString *name = [addressDict objectForKey:@"Name"];
MyLog(@"详细信息:%@",name);
_addressTextField.text = name;
}];
- (void)addMapKit
{
//1.初始化及设置代理
_mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
_mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_mapView.showsUserLocation = YES;
_mapView.delegate = self;
[self.view addSubview:_mapView];
//2.请求定位服务
_locationManager = [[CLLocationManager alloc] init];
if(![CLLocationManager locationServicesEnabled]||[CLLocationManager authorizationStatus]!=kCLAuthorizationStatusAuthorizedWhenInUse){
[_locationManager requestWhenInUseAuthorization];
}
//3.用户位置跟踪
_mapView.userTrackingMode = MKUserTrackingModeFollow;
//4.设置地图类型
_mapView.mapType = MKMapTypeStandard;
//5.添加大头针
- (void)addAnnotation
{
CLLocationCoordinate2D shopCoordinate = CLLocationCoordinate2DMake(_latitude, _longitude);
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = shopCoordinate;
annotation.title = _name;
[_mapView addAnnotation:annotation];
}
#pragma mark - MapView代理
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (_mapView) return;
//1.位置
CLLocationCoordinate2D center = userLocation.location.coordinate;
//2.跨度
MKCoordinateRegion region = MKCoordinateRegionMake(center, kSpan);
//3.区域
[mapView setRegion:region animated:YES];
_mapView = mapView;
}
#pragma mark 自定义大头针图片
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKPointAnnotation class]]){
MKPinAnnotationView *newAnnotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"myAnnotation"];
newAnnotationView.pinColor = MKPinAnnotationColorPurple;
// 设置该标注点动画显示
newAnnotationView.animatesDrop = YES;
newAnnotationView.annotation = annotation;
//把大头针换成别的图片
newAnnotationView.image = [UIImage imageNamed:@"my_mapLocate_annotation.png"];
return newAnnotationView;
}
return nil;
IOS 自带地图开发相关推荐
- iOS自带地图纠偏问题
----纠偏 篇----.. 1. 涉及接口:<CoreLocation/CoreLocation.h> 2. 核心代码解读: if ([CLLocationManager locatio ...
- iOS 自带地图详解
1.配置环境: 1>iOS9为了增强数据访问安全,将所有的http请求都改为了https,为了能够在iOS9中正常使用地图SDK,请在"Info.plist"中进行如下配置, ...
- iOS 自带地图定位失败原因 Code=0和Code=1区别
2019独角兽企业重金招聘Python工程师标准>>> 1:没有选择位置 Error Domain=kCLErrorDomain Code=0 "The operation ...
- ios开发中如何调用苹果自带地图导航
前段时间一直在赶项目,在外包公司工作就是命苦,天天加班不说,工作都是和工期合同挂钩的,稍微逾期就有可能被扣奖金,不谈这些伤脑筋的事情了,让我们说说iOS开发中如何调用苹果手机自带的地图. 学习如逆水行 ...
- iOS开发之利用苹果系统自带地图进行地图开发
了解更多关于移动开发,欢迎到悦卓3G孵化园:http://www.91train.com iOS中有一个系统自带的 完整的一套地图框架--MapKit.Framework和CoreLocation.F ...
- Android 百度地图开发(三)--- 实现比例尺功能和替换自带的缩放组件
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/11821523 貌似有些天没有写博客了,前段时间在忙找工作的事,面试了几家公司,表示反响 ...
- 在iOS中进行Mapbox地图开发杂谈
最近因项目需要,在app中要集成Mapbox,并且要能与苹果地图切换使用.从最早认识Mapbox到最终集成完毕,中间有一些断断续续,但总的时间也不算短了,关于这方面的资料其实是比较少的,能参考的基本都 ...
- IOS 苹果自带地图、百度地图、高德地图打开方式
//手机自带地图 //当前位置 MKMapItem *mylocation = [MKMapItemmapItemForCurrentLocation]; //前面填写纬度 CLLocationCoo ...
- 高德离线数据api_使用离线地图-创建地图-开发指南-iOS 地图SDK | 高德地图API
高德3D 地图 SDK支持离线地图功能.(2D 地图 SDK 不支持离线地图功能) 离线地图可满足在无网络环境下查看地图信息的需求,在设备本地有离线地图数据的情况下,SDK 会优先加载离线地图. 离线 ...
最新文章
- spark on yarn任务提交及运行完整流程图
- 基于Spring Boot的“课程设计”的设计与实现
- 【Java】用for循环实现1+2+3......+100 =
- mybatis分页的一种解决方案
- 电商购物APP UI 模板素材,充满时尚感的设计
- 资源日历 踩坑记(二)
- 100%抄袭!ICLR 2022投稿论文剽窃两篇顶会,程序主席放「实锤」严词拒稿!
- 如何到top5%?NLP文本分类和情感分析竞赛总结
- 一个关于全局变量的问题
- 第二章 this全面解析
- Windows10添加英文输入法
- 图解机器学习:分类模型性能评估指标
- 计算机微信接收excel打不开怎么回事,电脑端微信打不开怎么解决
- Linux下Tomcat项目启动报错
- 做业务的程序猿如何提升技能?
- AcWing 342. 道路与航线 (双端队列广搜问题,SPFA)
- C++“读取“大量数据时--快读
- MG本地服务器如何改ip
- css中的min-height、max-height、min-width、max-width
- 重置功能怎么实现java_java实现忘记密码功能