iOS 地图使用(一)

作者: iOS_成才录 | 来源:发表于2015-11-12 19:32 被阅读3031次

一、地图的基本使用

  • 设置地图类型
          // 1.设置地图显示类型
           /**
               MKMapTypeStandard = 0,  // 标准
               MKMapTypeSatellite,     // 卫星
               MKMapTypeHybrid,        // 混合(标准+卫星)
               MKMapTypeSatelliteFlyover NS_ENUM_AVAILABLE(10_11, 9_0), // 3D立体卫星
               MKMapTypeHybridFlyover NS_ENUM_AVAILABLE(10_11, 9_0), // 3D立体混合
            */
           self.customMapView.mapType = MKMapTypeStandard;
       
  • 设置地图的其他属性(操作项)
    • 注意:设置对应的属性时,注意该属性是从哪个系统版本开始引入的,做好不同系统版本的适配
  // 是否可以缩放
  self.customMapView.zoomEnabled = NO;
  // 是否可以滚动
   self.customMapView.scrollEnabled = NO;
  // 是否可以旋转
   self.customMapView.rotateEnabled = NO;
  // 是否显示3D
  self.customMapView.pitchEnabled = NO;    
  • 设置地图其它属性(显示项)

// 是否显示指南针
self.customMapView.showsCompass = YES;
// 是否显示比例尺
self.customMapView.showsScale = YES;
// 是否显示交通
self.customMapView.showsTraffic = YES;
// 是否显示建筑物
self.customMapView.showsBuildings = YES;

+ 设置地图显示用户位置( 需要请求用户授权 )
- 效果: 
 + 会在地图上显示一个蓝色圆点(大头针),`标示用户当前所在位置`, 地图`不会`跟着用户移动而移动
代码: self.customMapView.showsUserLocation = YES;

+ 设置地图的用户追踪模式( 需要请求用户授权 )
- 效果: 
 + 会在地图上显示一个蓝色圆点(大头针),`标示用户当前所在位置`, 地图`会`跟着用户移动而移动, 而且自动放大地图到合适比例
- 1.创建CLLocationManager对象请求授权
 ```objc
-(CLLocationManager *)locationM
              {
                  if (!_locationM) {
                      _locationM = [[CLLocationManager alloc] init];
                      if ([_locationM respondsToSelector:@selector(requestAlwaysAuthorization)]) {
                          [_locationM requestAlwaysAuthorization];
                      }
                  }
                  return _locationM;
              }
  • 2.设置地图的用户追踪模式
  • 注意:
    • 设置此属性会使用到用户的位置隐私,所以需要请求用户授权,否则没有效果
```objc

MKUserTrackingModeNone = 0, // 不跟随
MKUserTrackingModeFollow, // 跟随用户位置
MKUserTrackingModeFollowWithHeading, // 跟随用户位置,并跟随用户方向
*/
[self locationM];
self.customMapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
```

二、使用

显示地图.png
  • 1.导入框架MapKit.framework
框架MapKit.png
  • 2.进行请求授权,Info.plist文件中配置key
配置key.png
  • 3.布局界面,在控制器的view上拖拽一个mapView控件,用来显示地图
#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()
@property (weak, nonatomic) IBOutlet MKMapView *mapView;

/** 位置管理者 */
@property (nonatomic, strong) CLLocationManager *locationM;

@end

@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 = MKMapTypeStandard;
    
    
    // 设置地图的控制项
    // 是否可以滚动
//    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 = MKUserTrackingModeFollowWithHeading;
}
@end

相关文章

  • iOS 使用高德地图正确姿势(三)

    iOS 使用高德地图正确姿势(一)iOS 使用高德地图正确姿势(二) 实现大头针始终在地图中心,拖动地图实时poi...

  • iOS Mapkit的使用

    【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等 标签:iOS地图mapkit 1.显示地图 (1)首...

  • MapKit框架的使用

    一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之...

  • MapKit框架的使用

    一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之...

  • MapKit框架的使用

    一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前有3种, iOS9.0之...

  • MapKit框架的使用

    MapKit框架的使用 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前...

  • MapKit框架的使用

    MapKit框架的使用 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前...

  • MapKit框架的使用

    MapKit框架的使用 一. 地图的基本使用 1. 设置地图显示类型 地图的样式可以手动设置, 在iOS9.0之前...

  • iOS-系统原生的地图和定位简单使用

    iOS工程中简单使用原生的地图框架目录:一、使用MKMap控件二、根据地址定位三、在地图上添加锚点四、导航 iOS...

  • iOS 地图使用(一)

    一、地图的基本使用 设置地图类型 设置地图的其他属性(操作项)注意:设置对应的属性时,注意该属性是从哪个系统版本开...

网友评论

    本文标题:iOS 地图使用(一)

    本文链接:https://www.haomeiwen.com/subject/xishhttx.html