MapKit 添加大头针

#import "ViewController.h"

#import <MapKit/MapKit.h>

#import "MYAnnotation.h"

@interface ViewController ()<MKMapViewDelegate>

@property(nonatomic,strong)CLLocationManager *mag;

@property(nonatomic,strong)CLGeocoder *ceocoder;

@property(nonatomic,strong)MKMapView*mapView;

@end

@implementation ViewController

-(MKMapView*)mapView

{

if (!_mapView) {

_mapView=[[MKMapView alloc]init];

}

return _mapView;

}

- (void)viewDidLoad {

[super viewDidLoad];

self.mag=[[CLLocationManager alloc]init];

[self.mag requestAlwaysAuthorization];

[self.mag requestWhenInUseAuthorization];

//必须要记录要不不会进行用户权限验证

//   CLLocationManager *mags=[[CLLocationManager alloc]init];

//    [mags requestAlwaysAuthorization];

//    [mags requestWhenInUseAuthorization];

self.mapView.frame=self.view.bounds;

//self.mapView.visibleMapRect=MKMapRectMake(20, 20, 200, 200);

[self.view addSubview:self.mapView];

//设置地图的代理

self.mapView.delegate=self;

self.mapView.showsUserLocation=YES;

self.mapView.userTrackingMode=MKUserTrackingModeFollow;

}

//更新用户信息

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

{

[self.ceocoder reverseGeocodeLocation:userLocation.location completionHandler:^(NSArray *placemarks, NSError *error) {

CLPlacemark *mark=[placemarks firstObject];

userLocation.title=mark.name;

userLocation.subtitle=mark.locality;

}];

//设置地图显示的区域

CLLocationCoordinate2D center=userLocation.location.coordinate;

//指定经纬度跨度

MKCoordinateSpan Span=MKCoordinateSpanMake(15, 15);

//将用户当前位置作为中心

MKCoordinateRegion region=MKCoordinateRegionMake(center, Span);

//设置显示区域

[self.mapView setRegion:region animated:YES];

}

//加载大头针

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation

{

if ([annotation isKindOfClass:[MKUserLocation class]]) {

return nil;

}

static NSString*ID=@"anno";

MKPinAnnotationView *annotationView=(MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:ID];

if (annotationView==nil) {

annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:ID];

}

//设置大头针的颜色

annotationView.pinColor=MKPinAnnotationColorPurple;

//设置大头针动画

annotationView.animatesDrop=YES;

return annotationView;

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

CGPoint point=[[touches anyObject] locationInView:self.mapView];

CLLocationCoordinate2D coordinate=[self.mapView convertPoint:point toCoordinateFromView:self.mapView];

//添加大头针

MYAnnotation *anno=[[MYAnnotation alloc]init];

anno.title=@"你想要的";

anno.subtitle=@"可以用CLGeocoder解析出来位置";

anno.coordinate=coordinate;

[self.mapView addAnnotation:anno];

}

@end

#import <Foundation/Foundation.h>

#import <MapKit/MapKit.h>

@interface MYAnnotation : NSObject<MKAnnotation>

@property(nonatomic,assign)CLLocationCoordinate2D coordinate;

@property(nonatomic,copy)NSString*title;

@property(nonatomic,copy)NSString*subtitle;

@end

@implementation MYAnnotation

@end

时间: 2024-08-07 13:37:58

MapKit 添加大头针的相关文章

MapKit之大头针全面解析(使用系统大头针、自定义大头针callout视图、使用图片显示大头针)

首先了解一些相关知识点: 添加大头针到地图 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的"大头针".大头针(Annotations)提供了一种方式来突出地图中具体的位置并可以提供相关的信息.我们能够使用大头针标记具体的地址,兴趣点和其他类型的目的地.当显示在地图上的时候,大头针可以使用图片作为标识,也能够点击大头针弹出小弹框提供相应的链接和具体内容.Figure6-1显示了系统标准的大头针样式标记具体的位置,并提供了小弹框显示额外的信息,使用箭头提示用户点击获取

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

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

添加大头针

大头针的基本操作 添加一个大头针 - (void)addAnnotation:(id <MKAnnotation>)annotation; 添加多个大头针 - (void)addAnnotations:(NSArray *)annotations; 移除一个大头针 - (void)removeAnnotation:(id <MKAnnotation>)annotation; 移除多个大头针 - (void)removeAnnotations:(NSArray *)annotatio

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

【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等

转自:http://blog.csdn.net/dolacmeng/article/details/46594839 以前做项目用高德地图SDK,需要注册账号和AppID,然后下载SDK集成到项目中,比较麻烦,这几天看了下苹果自带的MapKit框架,感觉挺好用,官方文档也介绍得很详细,所以按照官方文档写了个demo,实现地图的显示.显示用户当前位置.放置大头针.弹出气泡等基本功能.希望能帮到刚接触MapKit的朋友~ 1.显示地图 (1)首先我们要像下图这样子打开地图功能: XCode会自动给我

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

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

【iOS开发-110】MapKit框架的主要类MKMapView以及代理方法,大头针的使用addAnnotation

#import "ViewController.h" #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interface ViewController ()<MKMapViewDelegate> @property(nonatomic,strong) CLLocationManager *locMgr; @property (weak, nonatomic) IBOut