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 ...
随机推荐
- javascript 事件委托,jq,js模拟事件
<!DOCTYPE> <html> <head> <title></title> <script src="Scripts/ ...
- 关于TxQBService报的错,腾讯你真牛B啊
腾讯你真牛B啊,浏览器都7了,还特么的报这么低级的错误,还每10秒写一条windows日志,让人有什么心情用你的浏览器,滚.
- 移动端设页面根目录HTML的字体大小
@media (max-width: 359px){ html { font-size: 62.5%; }}@media (min-width: 360px) and (max-width: 374p ...
- web.config中配置页面出错后跳转指定错误页面
每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现 ...
- C#文本选中及ContextMenuStrip菜单使用
'文本框选中显示'TextBox1.SelectAll()选择所有文本'textBox1.Text.Insert(start,strInsertText)指定位置添加文本1 Private Sub T ...
- jquery.validation.js 表单验证
jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...
- 手工加载DLL
1.为了能找到dll的函数地址,生成dll时需要将其中的函数声明为C函数(extern "C"): #ifndef __MYDLL_H#define __MYDLL_H #ifde ...
- Android Programming: Pushing the Limits -- Chapter 2: Efficient Java Code for Android
Android's Dalvik Java 与 Java SE 进行比较 Java代码优化 内存管理与分配 Android的多线程操作 Android’s Dalvik Java 与 Java SE ...
- javascript - 浏览器对象
Navigator对象 弹出窗口 Cookies Browser Objects 参考手册 参考手册描述了每个对象的属性和方法,并提供了在线实例. Window 对象 Navigator 对象 Scr ...
- 大话数据结构–1.基础知识+2.算法
2.算法: 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每个指令表现为一个或多个操作. 特性:输入.输出.有穷性.确定性.可行性. 2.9.1.算法时间复杂度: 语句 ...