IOS 请问如何让百度地图地位失败移动到当前地位的位置

地图使?(二) - 简书
下载简书移动应用
写了114854字,被1009人关注,获得了941个喜欢
地图使?(二)
效果图.png
1.设计: 将用户当前位置,显示在地图中间,而且点击蓝色点,弹出大头针
2.实现步骤:
查看当前?用户位置信息
设置地图代理,并实现代理?方法,在代理?方法中获取?用户当前位置(注意:iOS8.0之后要请求授权!!)
将地图显?示中?心调整为?用户当前所在位置(iOS8.0之前,地图不会?自动移动到?用户所在位置)
调整当前地图显?示的区域(可使?用对应代理?方法查看当前地图跨度,然后调整到合适跨度即可)
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
MKUserLocation : 被称作“大头针模型”,其实喊什么都行,本质就是一个数据模型,只不过此模型遵循了大头针要遵循的协议(MKAnnotation)
用户当前所在位置信息(CLLocation对象)
大头针标注要显示的标题(NSString对象)
大头针标注要显示的子标题(NSString对象)
// 根据用户当前位置的经纬度,设置地图显示中心
存在弊端:地图显示比例过大,无法调整
解决方案:直接使用对应的调整地图“显示区域”的API
[mapView setCenterCoordinate:userLocation.coordinate animated:YES];
MKCoordinateSpan 跨度解释:
latitudeDelta:纬度跨度,因为南北纬各90度,所以此值的范围是(0---180);此值表示,整个地图视图宽度,显示多大跨度
longitudeDelta:经度跨度,因为东西经各180度,所以此值范围是(0---360):此值表示,整个地图视图高度,显示多大跨度
注意:地图视图显示,不会更改地图的比例,会以地图视图高度或宽度较小的那个为基准,按比例调整
MKCoordinateSpan span = MKCoordinateSpanMake(0.1, 0.1);
MKCoordinateRegion region = MKCoordinateRegionMake(userLocation.coordinate, span);
[mapView setRegion:region animated:YES];
// 当地图区域(跨度)改变时调用
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
NSLog(@"%f---%f", mapView.region.span.latitudeDelta, mapView.region.span.longitudeDelta);
二、完整实例:
代码实现:
#import "ViewController.h"
#import &MapKit/MapKit.h&
#import &CoreLocation/CoreLocation.h&
@interface ViewController ()&MKMapViewDelegate&
@property (weak, nonatomic) IBOutlet MKMapView *mapV
/** 位置管理者 */
@property (nonatomic, strong) CLLocationManager *locationM;
@implementation ViewController
#pragma mark -懒加载
-(CLLocationManager *)locationM
if (!_locationM) {
_locationM = [[CLLocationManager alloc] init];
// 版本适配
if ([[UIDevice currentDevice].systemVersion floatValue] &= 8.0) {
[_locationM requestAlwaysAuthorization];
return _locationM;
- (void)viewDidLoad {
[super viewDidLoad];
MKMapTypeStandard = 0, // 标准地图
MKMapTypeSatellite, // 卫星云图
MKMapTypeHybrid, // 混合(在卫星云图上加了标准地图的覆盖层)
MKMapTypeSatelliteFlyover NS_ENUM_AVAILABLE(10_11, 9_0), // 3D立体
MKMapTypeHybridFlyover NS_ENUM_AVAILABLE(10_11, 9_0), // 3D混合
// 设置地图显示样式(必须注意,设置时 注意对应的版本)
self.mapView.mapType = MKMapTypeS
// 设置地图的控制项
// 是否可以滚动
self.mapView.scrollEnabled = NO;
self.mapView.zoomEnabled = NO;
self.mapView.rotateEnabled = NO;
// 设置地图的显示项(注意::版本适配)
// 显示建筑物
self.mapView.showsBuildings = YES;
self.mapView.showsCompass = YES;
self.mapView.showsPointsOfInterest = YES;
self.mapView.showsScale = YES;
self.mapView.showsTraffic = YES;
// 显示用户位置
[self locationM];
// 显示用户位置, 但是地图并不会自动放大到合适比例
self.mapView.showsUserLocation = YES;
MKUserTrackingModeNone = 0, 不追踪
MKUserTrackingModeFollow,
MKUserTrackingModeFollowWithHeading, 带方向的追踪
// 不但显示用户位置, 而且还会自动放大地图到合适的比例(也要进行定位授权)
self.mapView.userTrackingMode = MKUserTrackingModeFollowWithH
#pragma mark -MKMapViewDelegate
当地图获取到用户位置时调用
@param mapView
@param userLocation 大头针数据模型
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
MKUserLocation : 专业术语: 大头针模型 其实喊什么都行, 只不过这个类遵循了大头针数据模型必须遵循的一个协议 MKAnnotation
// title : 标注的标题
// subtitle : 标注的子标题
userLocation.title = @"标题";
userLocation.subtitle = @"子标题";
// 移动地图的中心,显示用户的当前位置
[mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];
// 显示地图的显示区域
// 控制区域中心
CLLocationCoordinate2D center = userLocation.location.
// 设置区域跨度
MKCoordinateSpan span = MKCoordinateSpanMake(0..044529);
// 创建一个区域
MKCoordinateRegion region = MKCoordinateRegionMake(center, span);
// 设置地图显示区域
[mapView setRegion:region animated:YES];
地图区域已经改变时带哦用
@param mapView
@param animated 动画
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
NSLog(@"%f---%f", mapView.region.span.latitudeDelta, mapView.region.span.longitudeDelta);
地图区域将要改变时带哦用
@param mapView
@param animated 动画
-(void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
· 108人关注
· 11人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:IOS 请问如何让地图移动到当前地位的位置_百度知道
IOS 请问如何让地图移动到当前地位的位置
显示前位置属性_mapView.showsUserLocation = YES;让图直跟随用户位置变化变化_mapView.userTrackingMode = MKUserTrackingModeF
其他类似问题
为您推荐:
ios的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁IOS 请问如何让地图移动到当前地位的位置_百度知道
IOS 请问如何让地图移动到当前地位的位置
提问者采纳
显示前位置属性_mapView.showsUserLocation = YES;让图直跟随用户位置变化变化_mapView.userTrackingMode = MKUserTrackingModeF
其他类似问题
为您推荐:
达宁的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 高德地图地位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信