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定位以及俯视视图的更多相关文章

  1. iOS Mapkit 定位REGcode地理位置偏移

    在iOS上,使用系统Mapkit定位,获取到的坐标会有偏移: 今有需求,用系统Mapkit定位,并Regcode出实际地理位置,修正偏移: 解决方案: 使用MapView的代理 - (void)map ...

  2. 定位导致物化视图无法快速刷新的原因 分类: H2_ORACLE 2013-08-08 23:04 335人阅读 评论(0) 收藏

    转载自:http://yangtingkun.itpub.net/post/468/13318 物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新.因此快速刷新是物化视图 ...

  3. (IOS)CoreLocation 和 MapKit 的应用

    CoreLocation是控制GPS硬件获取地理坐标信息的系统类库,而MapKit是系统地图的工具包,将两者结合使用可以实现不同的地图功能. 1.CoreLocation 在CoreLocation中 ...

  4. SQL Server索引视图以(物化视图)及索引视图与查询重写

    本位出处:http://www.cnblogs.com/wy123/p/6041122.html 经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感 ...

  5. (翻译)为你的MVC应用程序创建自定义视图引擎

    Creating your own MVC View Engine For MVC Application 原文链接:http://www.codeproject.com/Articles/29429 ...

  6. android 测量控件视图的方法

    在实际项目中经常要用到 测量一个控件或者视图的高,宽.然后根据这个高宽进行一些逻辑. 计算视图宽高有几种方式先简单的了解下android 视图的绘制过程会促进理解. 一.android View绘制过 ...

  7. ORACLE物化视图(物理视图)

    百度文库 http://wenku.baidu.com/view/f78f55c68bd63186bcebbc4b.html ORACLE物化视图 一.------------------------ ...

  8. iOS | 地图定位

    在IOS开发中,最常见的功能之一就是地图定位功能,不单单是百度地图,高德地图等专业的地图导航软件,还有美团,咕咚等一些美食购物类和运动类也需要这样的功能,所以学会这项技能是一名IOS开发工程师必须的. ...

  9. 理解Android绘制视图的方式

    在创建自定义ViewGroup前,读者首先需要理解Android绘制视图的方式.我不会涉及过多细节,但是需要读者理解Android开发文档(见3.5节)中的一段话,这段话解释如何绘制一个布局.内容如下 ...

随机推荐

  1. xutils的HttpUtils,Post和Get基本使用,以及BitmapUtils的简单使用

    开篇报错注意:本教程是基于xUtils-2.6.14.jar版本实现的 由于studio中6.0以后安卓取消了httpclient,而xutils则基于httpclient开发的,所以现在无法使用,将 ...

  2. .net 导出

    public void CreateExcel(DataTable dt, string fileName) { HttpResponse resp = System.Web.HttpContext. ...

  3. DevExpress gridcontrol添加了复选框删除选中的多行/批量删除的方法

    思路:遍历gridView1的每一行,该行中checkbox列被勾选则设置该行为选中状态,执行gridView1提供的DeleteSelectedRows方法则可 public void DoDele ...

  4. 安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项

    安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项,如下图所示 ...

  5. 7、Khala设备资源的申请和释放

    在实际业务中,我们每次登录后,可能需要在服务端维护一些设备相关的资源信息,而不同设备所需维护的资源信息又不尽相同.Khala提供了设备资源的维护储存功能,在此我们通过一个具体的业务中对其进行展示. 一 ...

  6. poj 3158kickdown

    我是来吐槽poj的!!! 第一次做poj,被题目中的输入输出格式打败了 ,醉了醉了 Description A research laboratory of a world-leading autom ...

  7. (转) Java程序员应该知道的10个调试技巧

    原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺 ...

  8. css3 页面退出和进入的动画

    @-webkit-keyframes slideIn { from { -webkit-transform: translate3d(100%,0,0); transform: translate3d ...

  9. web项目配置webAppRootKey 获得根目录 .

    log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param>  <param-name>webAppRootKey ...

  10. 轻松实现HTML5时钟(分享下自己对canvas的理解,原来没你想像的那么难哦)

    Hey,guys! 让我们一起用HTML5实现一下简易时钟吧! 接触canvas时, 我突然有一种非常熟悉的感觉------canvas的部分的功能其实和Photoshop中的 钢笔工具 是一样的.所 ...