MapKit的基本使用

#mapKit使用最基本的例子

#终点在于注意在iOS8中定位增加的授权请求

1.在创建CLLocationManager后,需要进行定位授权。

-(CLLocationManager *)mgr
{
    if (_mgr == nil) {

        _mgr = [[CLLocationManager alloc]init];
        //定位授权
        [_mgr requestAlwaysAuthorization];
        [_mgr requestWhenInUseAuthorization];

        //定位精度
        _mgr.desiredAccuracy = kCLLocationAccuracyBest;
        //更新距离
        _mgr.distanceFilter = 10;

        _mgr.delegate = self;
    }
    return _mgr;
}

2.并在info.plist中配置如下两个key信息,string的内容根据实际需求填写。

完整代码如下:

#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()<MKMapViewDelegate, CLLocationManagerDelegate>
/**
 *  mapView,storyboard连接
 */
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
/**
 *  按钮,回到定位位置,storyboard连接
 */
- (IBAction)currentPosition;
@property (nonatomic, strong) CLLocationManager *mgr;

@end

@implementation ViewController

-(CLLocationManager *)mgr
{
    if (_mgr == nil) {

        _mgr = [[CLLocationManager alloc]init];
        //定位授权
        [_mgr requestAlwaysAuthorization];
        [_mgr requestWhenInUseAuthorization];

        //定位精度
        _mgr.desiredAccuracy = kCLLocationAccuracyBest;
        //更新距离
        _mgr.distanceFilter = 10;

        _mgr.delegate = self;
    }
    return _mgr;
}

- (void)viewDidLoad {
    [super viewDidLoad];
#warning IOS8中变化
    /*
     1.定位授权
     requestWhenInUseAuthorization()
     requestAlwaysAuthorization()
     2.info.plist配置这两个key
     NSLocationAlwaysUsageDescription
     NSLocationWhenInUseUsageDescription
     */

    //0.开始定位
    [self.mgr startUpdatingLocation];

    //1.跟踪用户位置
    self.mapView.userTrackingMode = MKUserTrackingModeFollow;
    self.mapView.showsUserLocation = YES;

    //2.设置地图类型
    self.mapView.mapType = MKMapTypeStandard;

    //3.设置地图代理
    self.mapView.delegate = self;

}
#pragma mark - 关闭定位
-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    //停止定位
    [self.mgr stopUpdatingLocation];
}

#pragma mark - MKMapViewDelegate
#pragma mark  位置改变
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    NSLog(@"didUpdateUserLocation:%@",userLocation.location);

    //位置描述标题
    userLocation.title = @"我在这里";
    userLocation.subtitle = @"我真的在这里";
    //中心
    CLLocationCoordinate2D center = userLocation.coordinate;
    //显示经纬跨度
    MKCoordinateSpan span = MKCoordinateSpanMake(0.002214, 0.001751);
    //范围
    MKCoordinateRegion region = MKCoordinateRegionMake(center, span);
    //设置范围
    [mapView setRegion:region animated:YES];
}

#pragma mark MKMapViewDelegate代理方法,显示区域改变
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    NSLog(@"center.latitude:%f--center.longitude:%f", mapView.region.center.latitude, mapView.region.center.longitude);
    NSLog(@"span.latitudeDelta:%f--span.longitudeDelta:%f", mapView.region.span.latitudeDelta, mapView.region.span.longitudeDelta);
}

#pragma mark - CLLocationManagerDelegate代理方法
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    NSLog(@"%@",[locations firstObject]);
}

#pragma mark - 回到定位位置
- (IBAction)currentPosition {
    [self.mapView setCenterCoordinate:self.mapView.userLocation.location.coordinate animated:YES];
}
@end
时间: 2024-12-20 16:31:05

MapKit的基本使用的相关文章

iOS学习笔记—— MapKit

在iOS应用程序中,我们可以使用Map Kit API开发地图应用,其核心是MKMapView类.本次主要实现的功能是显示地图,添加标注,跟踪用户位置变化. (本日志的所有内容基于已成功获取坐标位置,获取方法见上篇日志) 1.显示地图 首先需要引用<MapKit/MapKit.h>,它的委托协议是 MKMapViewDelegate. 初始化MapView mapView = [[MKMapView alloc] initWithFrame:CGRectMake(5, 120, self.vi

iOS:地图:MapKit和CoreLocation

地图:MapKit和CoreLocation 简介: 现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocation CoreLocation框架可以使用硬件设备来进行定位服务 MapKit框架能够使应用程序做一些地图展示与交互的相关功能 几乎所有的iOS设备都支持位置服务,不过在使用位置服务之前,最好检查一下可用性 手机定位的三种方式:手机基站.WIFI.GPS 添加框架: #import <MapKit/MapKit.h>

地图 MapKit

一.简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用中,都用到了定位和地图功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发CoreLocation :用于地理定位,地理编码,区域监听等(着重功能实现)MapKit :用于地图展示,例如大头针,路线.覆盖层展示等(着重界面展示) 2.MapKit框架的使用MapKit框架使用前提导入框架(Xcode5

定位 - MapKit - 基本使用

/** *  Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named MKMapView' * *  @ 如果storyboard中用到了地图,  需要导入MapKit框架 */ #import "ViewController.h" #import <MapKit/MapKit.h>

MapKit --- iOS中的地图框架

iOS中可以简单地使用MapKit框架来进行地图的相关开发工作. 基本步骤: import MapKit ViewController 继承 MKMapViewDelegate 协议 添加一个MapKit View 准备一个相应的region信息, 即以哪为中心, 方圆多少范围 在mapView中设置该region即可 添加地理位置的标注annotation 地理位置标注添加到map中的相应操作. ViewController import UIKit import MapKit class V

MapKit框架的使用

1:MapKit框架使用前提 导入框架 导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专门用于地图显示 2:跟踪显示用户的位置 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 MKUserTrackingModeNone :不跟踪用户的位置 MKUserTrackingModeFollow :跟踪并在地图

关于原生地图定位的简单操作MapKit的使用

// //  ViewController.m //  Demo_1 MKMapView // //  Created by tareba on 15/12/16. //  Copyright © 2015年 tanada. All rights reserved. // #import "ViewController.h" #import <MapKit/MapKit.h> #import "TRAnnotation.h" @interface Vie

MapKit

MapKit框架的使用 nMapKit框架使用前提 p导入框架 p p导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 pMapKit框架中所有数据类型的前缀都是MK pMapKit有一个比较重要的UI控件 :MKMapView,专门用于地图显示 跟踪显示用户的位置 n设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 pMKUserTrackingModeNone :不跟踪用户的位置 pMKUserTracking

MapKit 添加大头针

#import "ViewController.h" #import <MapKit/MapKit.h> #import "MYAnnotation.h" @interface ViewController ()<MKMapViewDelegate> @property(nonatomic,strong)CLLocationManager *mag; @property(nonatomic,strong)CLGeocoder *ceocode

MapKit的使用显示当前位置

1.添加MapKit.framework框架 ,在plist中添加字段,用于,获取用户当前位置设置 NSLocationAlwaysUsageDescription 2.代码 #import "ViewController.h" #import <MapKit/MapKit.h> @interface ViewController ()<MKMapViewDelegate> @property (weak, nonatomic) IBOutlet MKMapVi