码迷,mamicode.com
首页 > 其他好文 > 详细

系统地图的用法

时间:2015-03-21 22:40:19      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

1,  引用框架  CoreGraphics.framework     MapKit.framework  CoreLocation.framework

2 导入主头文件 iOS5之后不需要手动导入

#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
(1)MapKit :用于地图展示
(2)CoreLocation :用于地理定位 

CoreLocation框架使用须知 

(1)  Corelocation框架中所有数据类型的前缀都是CL
(2)  Corelocation中使用的CLLocationManager对象来做用户定位

这是初始化
locationManager = [[CLLocationManager alloc] init];//初始化
    locationManager.delegate = self;//委托自己
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;//精度设定
    [locationManager startUpdatingLocation];//开启位置更新


定义经纬坐标

CLLocationCoordinate2D theCoordinate;
theCoordinate.latitude=21.238928;  经度
theCoordinate.longitude=113.313353;纬度


//
//  ViewController.m
//  MapStudy
//
//  Created by lanouhn on 15/3/21.
//  Copyright (c) 2015 niutiantian. All rights reserved.
//

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

@interface ViewController ()<MKMapViewDelegate, CLLocationManagerDelegate[CDATA[]]>
{
        //用来做用户定位
    CLLocationManager *locationManeger;
    CLLocation *location;
    CLGeocoder *geocoder; //反向地理编码
    CLLocationCoordinate2D coordinate; //地理位置坐标
    MKMapView *_mapView;
    
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
        //添加地图
    _mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
    _mapView.delegate = self;
    [self.view addSubview:_mapView];
    
    
        //定位管理器
    locationManeger = [[CLLocationManager alloc] init];
        //定位管理器没有打开
    if (![CLLocationManager locationServicesEnabled]) {
        NSLog(@"请打开定位");
        return;
    }
    
        //请求用户授权
        //kCLAuthorizationStatusNotDetermined 未授权
        //kCLAuthorizationStatusAuthorizedWhenInUse 授权
    if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
        [locationManeger requestWhenInUseAuthorization];     } else if ([CLLocationManager authorizationStatus]== kCLAuthorizationStatusAuthorizedWhenInUse) {             //设置代理         locationManeger.delegate = self;         locationManeger.desiredAccuracy = kCLLocationAccuracyBest;//精度设定         [locationManeger startUpdatingLocation]; //开启位置更新     }               _mapView.userTrackingMode = YES;//用户追踪当前位置         //设置地图类型     _mapView.mapType = MKMapTypeStandard;              //coordinate.latitude  coordinate.latitude  经度 纬度 //    CLLocation *location = [[CLLocation alloc] initWithLatitude:coordinate.latitude longitude:coordinate.latitude ];           } #pragma mark - MKMapViewDelegate #pragma mark - CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager      didUpdateLocations:(NSArray *)locations {     location = [locations firstObject];     coordinate = location.coordinate;         //地理位置反编码     geocoder = [[CLGeocoder alloc] init];     [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {         CLPlacemark *placeMark = [placemarks firstObject];         NSLog(@"%@", placeMark.addressDictionary);     }];         //添加标记大头针     [self addAnnotation];      } - (void)addAnnotation {     NSLog(@"%f", coordinate.latitude);     Annotation *annotation1 = [[Annotation alloc] init];     annotation1.title = @"CMJ Studio";     annotation1.subTitle = @"Kenshin Cui‘s Studios";     annotation1.coordinate = coordinate;     [_mapView addAnnotation:annotation1];      } -(void)viewWillAppear:(BOOL)animated {     [super viewWillAppear:animated];     [locationManeger stopUpdatingLocation]; } - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. } @end #import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface Annotation : NSObject<MKAnnotation[CDATA[]]> @property (nonatomic, copy) NSString *title; @property (nonatomic, copy) NSString *subTitle; @property (nonatomic, assign) CLLocationCoordinate2D coordinate; @end

 

系统地图的用法

标签:

原文地址:http://www.cnblogs.com/tian-sun/p/4356255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!