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
MapKit 添加大头针的更多相关文章
- iOS 地图(添加大头针)
首先在工程中导入MapKit.framework库文件 #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <U ...
- 【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等
转自:http://blog.csdn.net/dolacmeng/article/details/46594839 以前做项目用高德地图SDK,需要注册账号和AppID,然后下载SDK集成到项目中, ...
- MapKit/CoreLocation框架 总结
MapKit/CoreLocation框架 /*英译 core:核心 track:踪迹 current:当前 statellite:卫星 hybird:混合 region:范围 annotation ...
- iOS进阶_地图上定位的标志——大头针
一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大 ...
- iOS开发——高级篇——地图 MapKit
一.简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用中,都用到了定位 ...
- iOS:实现MKAnnotation协议,在地图上设置大头针,点击显示具体的位置信息
如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)a ...
- iOS:地图:MapKit和CoreLocation
地图:MapKit和CoreLocation 简介: 现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocation CoreLoca ...
- MapKit框架使用
MapKit框架使用 一.地图的基本使用 1.简介 MapKit:用于地图展示,例如大头针/路线/覆盖层展示等(着重界面展示) 使用步骤: 导入主头文件 MapKit/MapKit.h MapKit有 ...
- 定位 - MapKit-自定义大头针
#import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface PPAnnotation : NS ...
随机推荐
- 自定义控件之带水印的Textbox
代码地址: http://download.csdn.net/detail/u010312811/9553195 Windows消息处理: http://www.cnblogs.com/imstriv ...
- 事件查看器事件ID部分说明
事件查看器从简单的查看电脑登录信息到检查系统是否出现错误,是否被入侵都有着很重要的作用,Microsoft为了简便,采用事件ID来代表一些信息,下面是我从Microsoft找来的WIN2003的对应关 ...
- Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg
前几天为了查找字体转换工具网上搜索,既然用 Node.js 来做的工具. https://github.com/fontello/ttf2eot https://github.com/fontello ...
- WIZnet官方网盘
之前使用过 WIZnet 的TCP/IP 解决方案,资源较少, 偶然发现此网盘,不敢独享,访问 请戳此处.
- C#集合及特殊字符
集合里面 打印 出来时 要把 集合内的格式转化为其他格式! 壹. 集合 在.add之前 为空 数组 同样 添加元素之前 为 空(下一章超市购物例题具体体现) 1.System Collec ...
- IOS-Social.framework
1.使用前 需要导入Social.framework 框架 2.实例代码(新浪微博为例) - (IBAction)shejiaoBtn { // 判断服务器是否可用 if ([SL ...
- 解决Idea创建maven-archetype-webapp项目无java目录的问题
一.背景 在适用IDEA创建maven-archetype-webapp项目的时候,创建完成后发现在main文件夹下没有java源文件夹,不少小伙伴也遇到该问题,但不知道怎么解决,下面我就来分享解决步 ...
- 使用 ODBC .NET 提供程序和 Visual C# .NET 执行 SQL 参数化存储过程
http://support2.microsoft.com/kb/310130/zh-cn 此分步指导文章描述如何使用 ODBC .NET 托管提供程序和 Visual C# .Net 调用参数化 S ...
- [Android] adb shell dumpsys的使用
reference to :http://blog.csdn.net/g19920917/article/details/38032413 有两种方法可以查看service list: 1. adb ...
- 安装Birt方法
安装BIRT 方法: 博客地址:http://www.mamicode.com/info-detail-850588.html 注意:在 Install new Software 中输入地址:http ...