ios-地图-MapKit

//
//  RootViewController.m
//  CustomMapDemo
//
//  Created by  liyang on 14-5-5.
//  Copyright (c) 2014年 liyang. All rights reserved.
//

#import "RootViewController.h"
#import "customAnnotation.h"
#import   <MapKit/MapKit.h>

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
-(void)loadView{
    _mymap=[[MKMapView alloc]init];//将一个地图作为一个控制器的view
    self.view =_mymap;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    _mymap.mapType=MKMapTypeStandard;//地图类型
    _mymap.showsUserLocation=YES;//是否显示当前设备的位置
    CLLocationCoordinate2D center={39.910650,116.47030};//经纬度
    MKCoordinateSpan span={0.1,0.1};//放大倍数
    MKCoordinateRegion region={center,span};//地图初始化的显示区域
    [_mymap setRegion:region];//地图的初始化
    _mymap.delegate=self;//地图的代理可以做什么事情,比如给这个地图添加大头针
    customAnnotation *customanotation=[[customAnnotation alloc]initWithCLLocationCoordinate2D:center];
    customanotation.title=@"万达广场";
    customanotation.subtitle=@"八大胡同";
    
    [_mymap addAnnotation:customanotation];//只要有这个方法应该就会调用下面这个代理
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{//因为这个参数是一个协议,所以我们就创建一个类是实现了这个协议的类对象给传进来,因为这个直接是代理调用,应该是直接地图上添加一个标注就可以了
    static NSString * identifier=@"annotation";
  MKAnnotationView *mkanotationview=  [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    
    if (mkanotationview==nil) {
        mkanotationview=[[MKAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:identifier];
        mkanotationview.image=[UIImage imageNamed:@"play"];//用一个图片来标注,当然也可以用这个类的子类,有专门的大头针类
       UIButton *button= [UIButton buttonWithType:UIButtonTypeDetailDisclosure];//按钮的初始化
        mkanotationview.canShowCallout=YES;//设置是否显示按钮
        mkanotationview.rightCalloutAccessoryView=button;//设置一个按钮,有右边,当然也有有右边
    }
    mkanotationview.annotation=annotation;
    return  mkanotationview;
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
@end

 

posted @ 2014-05-05 09:52  离子  阅读(285)  评论(0编辑  收藏  举报