#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

MapKit 添加大头针的更多相关文章

  1. iOS 地图(添加大头针)

    首先在工程中导入MapKit.framework库文件 #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <U ...

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

    转自:http://blog.csdn.net/dolacmeng/article/details/46594839 以前做项目用高德地图SDK,需要注册账号和AppID,然后下载SDK集成到项目中, ...

  3. MapKit/CoreLocation框架 总结

    MapKit/CoreLocation框架 /*英译 core:核心 track:踪迹 current:当前 statellite:卫星 hybird:混合  region:范围 annotation ...

  4. iOS进阶_地图上定位的标志——大头针

    一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大 ...

  5. iOS开发——高级篇——地图 MapKit

    一.简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用中,都用到了定位 ...

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

    如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)a ...

  7. iOS:地图:MapKit和CoreLocation

    地图:MapKit和CoreLocation 简介: 现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocation CoreLoca ...

  8. MapKit框架使用

    MapKit框架使用 一.地图的基本使用 1.简介 MapKit:用于地图展示,例如大头针/路线/覆盖层展示等(着重界面展示) 使用步骤: 导入主头文件 MapKit/MapKit.h MapKit有 ...

  9. 定位 - MapKit-自定义大头针

    #import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface PPAnnotation : NS ...

随机推荐

  1. RRD

    http://my.oschina.net/u/1458120/blog/208857

  2. Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值

    Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...

  3. 7. javacript高级程序设计- 函数表达式

    1. 函数表达式 1.1 函数定义 函数定义的方式有两种:一种是函数声明,另一种就是函数表达式. (1). 函数声明:函数声明的重要特征就是函数声明提示,函数声明会在函数执行前执行 function ...

  4. yii框架详解 之 国际化 (I18N)

    我们要开启组件中们关于语言的配置,默认的就是CPhpMessageSource,也可以改为其他的方式. #组件配置中  'messages' => array(     'class'=> ...

  5. Apache OFBiz 研究记录01

    作为Apache 的顶级项目: Apache OFBiz,功能十分强大,一般开发者很难用到全部功能. 这次笔者的研究主要集中在电子商务平台这一块,一步一步解构. OFBiz下载地址:http://of ...

  6. ABAP 内表的行列转换-NEW

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: mseg,mkpf. DATA: gd_fieldcat TYPE slis_t_fieldca ...

  7. Sql存储过程

    下面的存储过程从四个表的联接中返回所有作者(提供了姓名).出版的书籍以及出版社.该存储过程不使用任何参数. USE pubs IF EXISTS (SELECT name FROM sysobject ...

  8. 地图API文档

    目录 腾讯地图API 2 1.API概览... 2 1.1 WebService API(官网注明是beta版本,可能不稳定,慎用):... 2 1.2 URL API:... 2 1.3 静态图AP ...

  9. 1.4 算法 - algorithm

    1)概述 2)示例 //algorithm find演示 #include <vector> #include <algorithm> #include <iostrea ...

  10. RST_n的问题

     有一个灰常郁闷的问题... module CLK_Generater(                    input        CLOCK_100,                    i ...