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

mapkit定位以及俯视视图

时间:2015-12-30 17:23:19      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

1.导入框架MapKit.framework,CoreGraphics.framework

技术分享

2.storyboard

技术分享

3.ViewController.m

 导入头文件,设置代理

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

@interface ViewController ()<MKMapViewDelegate>
@property (strong, nonatomic) IBOutlet UITextField *jingdu;
@property (strong, nonatomic) IBOutlet UITextField *weidu;
- (IBAction)GoBtn:(id)sender;
@property (strong, nonatomic) IBOutlet MKMapView *mapView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //地图类型为标准
    self.mapView.mapType = MKMapTypeStandard;
    //设置地图可以缩放
    self.mapView.zoomEnabled = YES;
    //设置可以滚动
    self.mapView.scrollEnabled = YES;
    //设置可以旋转
    self.mapView.rotateEnabled = YES;
    //设置显示用户当前位置
    self.mapView.showsUserLocation = YES;
    //设置代理
    self.mapView.delegate = self;
    

    //调用自定义方法显示位置和区域
    [self setMapLocationToJingDu:23.126272 AndWeidu:113.395568];
    NSLog(@"用户当前是否位于地图中:%d",self.mapView.userLocationVisible);

    
    //设置为俯视视图
    CLLocationCoordinate2D to = {23.126272 , 113.395568};
    CLLocationCoordinate2D from = {22.826272 , 113.295568};
    MKMapCamera* camera = [MKMapCamera cameraLookingAtCenterCoordinate:to
                                                     fromEyeCoordinate:from eyeAltitude:70];
    self.mapView.camera = camera;

}
//自定义设置经纬度的方法
-(void)setMapLocationToJingDu:(CGFloat)jingdu AndWeidu:(CGFloat)weidu
{
    //设置地图中心的经纬度
    CLLocationCoordinate2D center = {jingdu,weidu};
//    也可以用如下方式设置经纬度
//    center.latitude = jingdu;
//    center.longitude = weidu;
    
    //设置地图显示的范围
    MKCoordinateSpan span;
    //地图显示范围越小,细节越清楚
    span.latitudeDelta = 0.01;
    span.longitudeDelta = 0.01;
    
    //创建对象,该对象代表了地图的显示中心和显示范围
    MKCoordinateRegion region = {center,span};
    //设置当前地图的显示中心和显示范围
    [self.mapView setRegion:region animated:YES];
    
}
- (IBAction)GoBtn:(id)sender {
    //关闭虚拟键盘
    [self.jingdu resignFirstResponder];
    [self.weidu resignFirstResponder];
    
    if (self.jingdu.text != nil && self.jingdu.text.length >0  && self.weidu.text != nil && self.weidu.text >0) {
        [self setMapLocationToJingDu:self.jingdu.text.floatValue AndWeidu:self.weidu.text.floatValue];
    }
}
// MKMapViewDelegate协议中的方法,当MKMapView显示区域将要发生改变时激发该方法
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
{
    NSLog(@"地图控件的显示区域将要发生改变!");
}
// MKMapViewDelegate协议中的方法,当MKMapView显示区域改变完成时激发该方法
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    NSLog(@"地图控件的显示区域完成了改变!");
}
// MKMapViewDelegate协议中的方法,当MKMapView开始加载数据时激发该方法
- (void) mapViewWillStartLoadingMap:(MKMapView *)mapView
{
    NSLog(@"地图控件开始加载地图数据!");
}
// MKMapViewDelegate协议中的方法,当MKMapView加载数据完成时激发该方法
- (void) mapViewDidFinishLoadingMap:(MKMapView *)mapView
{
    NSLog(@"地图控件加载地图数据完成!");
}
// MKMapViewDelegate协议中的方法,当MKMapView加载数据失败时激发该方法
- (void) mapViewDidFailLoadingMap:(MKMapView *)mapView
                        withError:(NSError *)error
{
    NSLog(@"地图控件加载地图数据发生错误,错误信息 %@!" , error);
}
// MKMapViewDelegate协议中的方法,当MKMapView开始渲染地图时激发该方法
- (void) mapViewWillStartRenderingMap:(MKMapView *)mapView
{
    NSLog(@"地图控件开始渲染地图!");
}
// MKMapViewDelegate协议中的方法,当MKMapView渲染地图完成时激发该方法
- (void) mapViewDidFinishRenderingMap:(MKMapView *)mapView
                        fullyRendered:(BOOL)fullyRendered
{
    NSLog(@"地图控件渲染地图完成!");
}

mapkit定位以及俯视视图

标签:

原文地址:http://www.cnblogs.com/Bo-tree/p/5089334.html

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