注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

定位和地图(三)  

2013-05-08 23:27:13|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在地图视图上添加锚点

使用地图内置的标注。如下步骤:

1.创建一个新的类,命名为 MyAnnotation
2.确保这个类要实现 MKAnnotation 协议。
3.给这个类定义一个类型为 CLLocationCoordinate2D 的属性,命名为 coordinate。特别

要注意这个参数需要标示为只读类型的。因为 MKAnnotation 这个协议中定义的 Coordinate 也是只读类型的。

4.同理,定义两个 NSString 类型的属性,分别命名为 title subtitle。这两个参数用来 保存锚点的标题和内容信息。

5.给这个类添加一个初始化方法,这个方法需要接收一个 CLLocationCoordinate2D 类型 的参数。在这个方法中把我们在步骤 3 定义的那个属性传递进来..由于这个属性是只读的, 他并不能在这个类以外进行赋值。因此,这个初始化方法也就是一个桥梁,使我们能够正常 的往这个了类中进行传递值。同理 title subtitle 也要进行类似的操作。

6.初始化 MyAnnotation 这个类,然后把他添加到你的地图中,通过 Annotation 这个方 法。 


代码如下:

MyAnnotation.h

#import <Foundation/Foundation.h>

#import <MapKit/MapKit.h>


@interface MyAnnotation : NSObject <MKAnnotation>


@property (nonatomic,readonly) CLLocationCoordinate2D coordinate;

@property (nonatomic,copy,readonly) NSString *title;

@property (nonatomic,copy,readonly) NSString *subtitle;


- (id) initWithCoordinates: (CLLocationCoordinate2D) paramCoordinates title:(NSString *) paramTitle

                  subTitle:(NSString *) paramSubTitle;


@end


---------------------

MyAnnotation.m

#import "MyAnnotation.h"


@implementation MyAnnotation


- (id) initWithCoordinates:(CLLocationCoordinate2D)paramCoordinates title:(NSString *)paramTitle subTitle:(NSString *)paramSubTitle

{

    self = [super init];

    if (self != nil)

    {

        _coordinate = paramCoordinates;

        _title = paramTitle;

        _subtitle = paramSubTitle;

    }

    return self;

}


@end


----------------------

#import <UIKit/UIKit.h>

#import <MapKit/MapKit.h>



@interface ViewController : UIViewController <MKMapViewDelegate>


@property (nonatomic,strong) MKMapView *myMapView;


@end


----------------------

#import "ViewController.h"

#import "MyAnnotation.h"



@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

    self.myMapView = [[MKMapView alloc]

                      initWithFrame:self.view.bounds];

    self.myMapView.delegate = self;

    self.myMapView.mapType = MKMapTypeStandard;

    self.myMapView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

    [self.view addSubview:self.myMapView];

    

    CLLocationCoordinate2D location = CLLocationCoordinate2DMake(50.82191692907181, -0.13811767101287842);

    MyAnnotation *annotation = [[MyAnnotation alloc] initWithCoordinates:location title:@"My Title" subTitle:@"My Sub Title"];

    [self.myMapView addAnnotation:annotation];

}


- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

{

    return YES;

}


- (void) didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

}



@end


  评论这张
 
阅读(34)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017