MapKit的使用显示当前位置

1.添加MapKit.framework框架 ,在plist中添加字段,用于,获取用户当前位置设置

NSLocationAlwaysUsageDescription

2.代码

#import "ViewController.h"

#import <MapKit/MapKit.h>

@interface ViewController ()<MKMapViewDelegate>

@property (weak, nonatomic) IBOutlet MKMapView *mapKit;

//位置信息

@property(nonatomic,strong)CLLocation*location;

//地理编码对象

@property(nonatomic,strong)CLGeocoder*geocide;

@property(nonatomic,strong)CLLocationManager*manager;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//地图显示的类型

//MKMapTypeStandard:标准类型

//MKMapTypeSatellite:卫星模型

//MKMapTypeHybrid:混合模型

self.mapKit.mapType=MKMapTypeStandard;

//    ios8中追踪用户位置

if([[UIDevice currentDevice].systemVersion doubleValue]>8.0)

{

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

[self.manager requestAlwaysAuthorization];

}

//设置不允许地图旋转

self.mapKit.rotateEnabled=NO;

self.mapKit.delegate=self;

//设置mapKit获取用户位置的方式

//    MKUserTrackingModeNone 不追踪

//    MKUserTrackingModeFollow 追踪

//    MKUserTrackingModeFollowWithHeading 追踪并获取用户的方向

self.mapKit.userTrackingMode=MKUserTrackingModeFollowWithHeading;

}

-(CLGeocoder*)geocide

{

if (_geocide==nil) {

_geocide=[[CLGeocoder alloc]init];

}

return _geocide;

}

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

{

//利用地理编码获取位置,设置标题

[self.geocide 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(0.009310,0.007812);

//指定显示区域的中

MKCoordinateRegion region=MKCoordinateRegionMake(center, span);

//设置显示区域

[self .mapKit setRegion:region];

}

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

{

//地图区域改变完成

NSLog(@"%f,%f",self.mapKit.region.span.latitudeDelta,self.mapKit.region.span.longitudeDelta);

}

@end

时间: 2024-12-20 03:44:52

MapKit的使用显示当前位置的相关文章

iOS 输入地点 显示当前位置地图并用大头针标注

废话不多说 直接上项目工程  ,还是 先看下效果图吧! 项目中有两个文件,chonViewController 和mapLocation文件 ,mapLocation 文件用于地标显示 并有附加信息,昨天做得时候附加信息显示正常,今天想写点博客 却不显示了 ,很郁闷! 新建工程后 记得加入类库,MapKit.framework 具体添加方法 这里不在说明了 下面 看下 chonViewController.h 文件 代码如下: #import <UIKit/UIKit.h> #import &

[游戏模版4] Win32 显示鼠标位置

>_<:use MOUSE_MOVE message refresh the position information. >_<:use LOWORD(lParam) get position x and use HIWORD(lParam) get position y 1 //{{NO_DEPENDENCIES}} 2 // Microsoft Visual C++ generated include file. 3 // Used by FE.RC 4 // 5 #defin

CSS Sprites技术(将背景图整合到一张图中,再利用CSS背景图片定位到要显示的位置)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

ios map 显示用户位置

昨天遇到个奇怪的问题,用户的位置在地图中死活不显示,showUserLocation也设置了,最后发现是因为实现了 mapView protocol中的一个方法: -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation: 显示用户位置时会有这个回调,因为自己在里面返回了一个未初始化好的View,导致系统的默认Pin没有显示出来.

Jquery 实现点击一个页面跳转后在另外一个页面显示指定位置

<script> $(function(){ var isTarget = '<?php echo $_GET['target']; ?>'; if (isTarget != "") { var body = $('body') var target = $('#content'); // 要显示的位置标签id body.animate({ scrollTop:target.offset().top - body.offset().top + body.scro

iOS开发中获取视图在屏幕上显示的位置

在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可是,如果按钮是在UITableView的cell上呢?随着UITableView的滚动,按钮可能在顶部,也可能在底部,还可能在中间,左侧.右侧都有可能,那么,这个时候,怎么去计算按钮所在的位置呢?如果按钮所在的UITabelView是在另外一个UIScrollView的一个cell上呢?如果外面再有

通过百度地图API显示当前位置在地图上(图标显示)--第三方开源--百度地图(二)

1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 2.把demo里面的BaiduMapsApiDemo解压,把BaiduMapsApiDemo文件夹里面的libs里面的所有文件都复制到自己的项目的libs里面 3.配置Andro

百度地图的定位以及拖拽(显示坐标位置)

截图示例 <!doctype html> <html lang="en"> <head>  <meta charset="UTF-8">  <meta name="Generator" content="EditPlus?">  <meta name="Author" content="">  <meta na

使用validate进行表单验证时土方法(appendTo)改变error显示的位置

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用validate进行表单验证时会出现error显示位置非所要求位置的现象,此时的解决方法是:</span> 1.所需要显示error message 的位置定义好无内容的div,并通过设置宽高"占位"(此时可能会用到position:absolute)