添加大头针

大头针的基本操作
添加一个大头针
- (void)addAnnotation:(id <MKAnnotation>)annotation;

添加多个大头针
- (void)addAnnotations:(NSArray *)annotations;

移除一个大头针
- (void)removeAnnotation:(id <MKAnnotation>)annotation;

移除多个大头针
- (void)removeAnnotations:(NSArray *)annotations;

(id <MKAnnotation>)annotation参数是什么东西?
大头针模型对象:用来封装大头针的数据,比如大头针的位置、标题、子标题等数据

自定义大头针,需要实现MKAnnotation协议

@interface MyAnnotation : NSObject <MKAnnotation>

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;

@end

控制器:

//
//  ViewController.m
//  05-添加大头针
//
//  Created by apple on 15/1/30.
//  Copyright (c) 2015年 apple. All rights reserved.
//

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

@interface ViewController () <MKMapViewDelegate>

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

// IOS8
@property (nonatomic,strong) CLLocationManager *mgr;

@end

@implementation ViewController

- (CLLocationManager *)mgr{
    if (!_mgr) {
        _mgr = [[CLLocationManager alloc] init];

        [_mgr requestAlwaysAuthorization];
        [_mgr requestWhenInUseAuthorization];
    }
    return _mgr;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    // iOS 8后需要请求授权,并在info.plist文件中添加
//        总是使用用户位置:NSLocationAlwaysUsageDescription
//        使用应用时定位:NSLocationWhenInUseDescription
    self.mgr;

    // 1.设置代理
    self.mapView.delegate = self;

    // 2.跟踪用户的位置
    self.mapView.userTrackingMode = MKUserTrackingModeFollow;

    // 3.添加两个大头针
    MyAnnotation *anno1 = [[MyAnnotation alloc] init];
    anno1.coordinate = CLLocationCoordinate2DMake(40.06, 116.39);
    anno1.title = @"北京市";
    anno1.subtitle = @"中国北京市昌平区";

    MyAnnotation *anno2 = [[MyAnnotation alloc] init];
    anno2.coordinate = CLLocationCoordinate2DMake(30.23, 120.23);
    anno2.title = @"杭州市";
    anno2.subtitle = @"浙江省杭州市萧山区";

    [self.mapView addAnnotation:anno1];
    [self.mapView addAnnotation:anno2];
}

/**
 *  定位到用户的位置会调用该方法
 *
 *  @param userLocation 大头针模型对象
 */
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    // 设置用户的位置为地图的中心点
    [mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];
}

/**
 *  点击屏幕任意位置添加打头针
 *
 *  @param touches <#touches description#>
 *  @param event   <#event description#>
 */
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 1.获取用户点击的点
    CGPoint point = [[touches anyObject] locationInView:self.view];

    // 2.将该点转化成经纬度(地图上的坐标)
    CLLocationCoordinate2D coordinate = [self.mapView convertPoint:point toCoordinateFromView:self.view];

    // 3.添加大头针
    MyAnnotation *anno = [[MyAnnotation alloc] init];
    anno.coordinate = coordinate;
    anno.title = @"大头针";
    anno.subtitle = @"大头针大头针";
    [self.mapView addAnnotation:anno];
}

@end
时间: 2024-11-04 14:09:57

添加大头针的相关文章

MapKit 添加大头针

#import "ViewController.h" #import <MapKit/MapKit.h> #import "MYAnnotation.h" @interface ViewController ()<MKMapViewDelegate> @property(nonatomic,strong)CLLocationManager *mag; @property(nonatomic,strong)CLGeocoder *ceocode

iOS学习_地图_添加大头针

首先要引入#import <MapKit/MapKit.h>框架 创建一个继承与NSObject的类;用于声明属性 接下来在ViewController中实现相关的操作 引入头文件 #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> #import "MyAnnotation.h" 定义相应的属性 //定位管理器 @property(nonatomic,strong)CLLo

iOS 地图(添加大头针)

首先在工程中导入MapKit.framework库文件 1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window; 6 7 @end 1 #import "AppDelegate.h" 2 #import "RootViewCon

百度地图添加大头针和视图

首先初始化一个要展示的泡泡视图 paopaoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 80)]; paopaoView.layer.cornerRadius = 10; paopaoView.layer.borderColor = [UIColor lightGrayColor].CGColor; paopaoView.layer.borderWidth = 2; UILabel *label = [[UILabel a

iOS地图中添加大头针

首先,我们得新建一个遵守MKAnnotation的对象,并且拥有以下几个属性: @interface LHAnnotation : NSObject<MKAnnotation> // Center latitude and longitude of the annotion view. // The implementation of this property must be KVO compliant. @property (nonatomic, assign) CLLocationCoo

地图篇-04.添加/删除大头针

地图篇-04.添加/删除大头针 博主这几天有点事,没有更新,还望海涵. 上一小节讲到展示地图,在展示地图的过程中,显示用户位置的时候是一个蓝色小圆点,但是朋友们觉得不好看,那弱弱的问一句,能换么? 肯定是能的啦. 1.准备 创建一个新项目,在storyboard中拖一个mapView,两个button,一个添加大头针,一个删除大头针,如下: 拖好了控件之后,简单搞下自动布局,然后把这3个控件拖入viewController.m中,不要忘记导入头文件和导入框架,这个前面讲过,这里不做细讲. 2.添

iOS:实现MKAnnotation协议,在地图上设置大头针,点击显示具体的位置信息

如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)addAnnotation:(id <MKAnnotation>)annotation; 说明:需要传入一个遵守了MKAnnotation协议的对象 基本步骤为: <1>新建一个遵守MKAnnotation协议的类: @interface MyAnnotation : NSObject 

iOS地图的显示(大头针)

1 1.导入主头文件 2 #import <MapKit/MapKit.h> 3 MapKit框架使用须知 4 MapKit框架中所有数据类型的前缀都是MK 5 MapKit有一个比较重要的UI控件:MKMapView,专门用于地图显示 6 7 2.跟踪显示用户的位置 8 9 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 10 MKUserTrackingModeNone :不跟踪用户的位置 11 MKUserTrackingModeFollow :跟

【iOS开发-111】自定义大头针Annotation以及2种导航划线的方法介绍

(1)自定义大头针Annotation的样式,也就是定义view,主要的方法是如下,传递一个大头针annotation模型,然后返回一个MKAnnotationView,这个MKAnnotationView有一个image属性,设置这个属性,就能设置它的样式了. -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ } 关键提示,这个MKAnnotati