ios-地图-自定义大头针

88 篇文章 0 订阅
#import "ViewController.h"
//导入
#import <MapKit/MapKit.h>
#import "MyAnnotion.h"

@interface ViewController ()<MKMapViewDelegate>

//地图显示类
@property (nonatomic, weak) MKMapView *mapView;

@end

@implementation ViewController

- (MKMapView *)mapView
{
    if (!_mapView)
    {
        MKMapView *mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
        [self.view addSubview:mapView];
        
        CLLocationCoordinate2D coordinate2D = {39.9087607478,116.3975780499};
        MKCoordinateSpan span = {.01,.01};
        
        MKCoordinateRegion region = MKCoordinateRegionMake(coordinate2D, span);
        
        //设置范围
        [mapView setRegion:region];
        
        mapView.delegate = self;
        
        _mapView = mapView;
    }
    
    return _mapView;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    
    //MKPointAnnotation;
    
    //id<MKAnnotation>
    //[self.mapView addAnnotation:(id<MKAnnotation>)];
    
    //百度。高德。google
    
    CLLocationCoordinate2D coordinate2D = {39.9087607478,116.3975780499};
    
    //添加标注
    MyAnnotion *annotion = [[MyAnnotion alloc] initWithCoordinate2D:coordinate2D title:@"北京市" subtitle:@"天安门"];
    [self.mapView addAnnotation:annotion];
    
    
    CLLocationCoordinate2D coordinate2D2 = {39.9097607478,116.39875780499};
    MyAnnotion *annotion2 = [[MyAnnotion alloc] initWithCoordinate2D:coordinate2D2 title:@"北京市" subtitle:@"天安门"];
    [self.mapView addAnnotation:annotion2];
    
    
    //计算两个经纬度之间的距离
    
    //保存地理信息
    CLLocation *l1 = [[CLLocation alloc] initWithLatitude:coordinate2D.latitude longitude:coordinate2D.longitude];
    CLLocation *l2 = [[CLLocation alloc] initWithLatitude:coordinate2D2.latitude longitude:coordinate2D2.longitude];
    
    //计算两个经纬度之间的距离(单位是米)
    CLLocationDistance distance = [l1 distanceFromLocation:l2];
    NSLog(@"---%f",distance);
    
}

#pragma mark - MKMapViewDelegate
/**
 *  添加标注的时候会触发(addAnnotation:)
 *
 *  @param mapView <#mapView description#>
 *  @param views   <#views description#>
 */
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{

    NSLog(@"----%@",views);
}

/**
 *  返回大头针视图
 *
 *  @param mapView    <#mapView description#>
 *  @param annotation <#annotation description#>
 *
 *  @return <#return value description#>
 */
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    //1.从复用队列里面通过标示符找可用的大头针对象
    MKPinAnnotationView *pin = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"annotation"];
    
    
    if (!pin)
    {
        //2.如果没有找到,就创建
        pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annotation"];
        //显示气泡(三角视图)
        pin.canShowCallout = YES;
        /*
         MKPinAnnotationColorRed(默认)
         MKPinAnnotationColorGreen,
         MKPinAnnotationColorPurple
         */
        //修改大头针颜色
        pin.pinColor = MKPinAnnotationColorPurple;
    }
    
    return pin;
    
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值