MapView簡單定位及定位大頭針(Obj-C)
1.匯入標頭檔案 <MapKit/MapKit.h>
如果使用程式碼建立,會自動匯入MapKit框架,如果使用Xib/SB,需要手動匯入MapKit.framework框架
2.請求授權(記得配置info.plist檔案)
如果忘記請求授權,控制檯會彈出錯誤:
Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysAuthorization] first.
#import "ViewController.h"
#import <MapKit/MapKit.h>
@interface ViewController () <MKMapViewDelegate>
// MapView
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
// 定位管理者
@property (nonatomic,strong) CLLocationManager *manager;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 請求授權
self.manager = [[CLLocationManager alloc]init];
if ([self.manager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[self.manager requestWhenInUseAuthorization];
}
// 地圖定位 設定使用者的跟蹤模式
/*
MKUserTrackingModeNone = 0, // the user's location is not followed
MKUserTrackingModeFollow, // the map follows the user's location
MKUserTrackingModeFollowWithHeading __TVOS_PROHIBITED, // the map follows the user's location and heading
*/
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
// 設定代理
self.mapView.delegate = self;
}
/**
* 已經更新使用者的位置後呼叫
*
* @param mapView 地圖檢視
* @param userLocation 定位大頭針模型
*/
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{
// 建立地理編碼者
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:self.mapView.userLocation.location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
if (placemarks.count == 0 || error) {
return ;
}
CLPlacemark *pm = placemarks.lastObject;
//大頭針檢視不是由開發者來新增的,大頭針檢視的資料是由開發者來設定的,通過大頭針檢視的大頭針模型來設定 定位大頭針的模型類為MKUserLocation
//2.4設定資料
self.mapView.userLocation.title = pm.locality;
self.mapView.userLocation.subtitle = pm.name;
}];
}
@end
相關文章
- 自學筆記:python+opencv針對藍色來進行簡單的車牌定位筆記PythonOpenCV
- iOS 地圖定位 定位iOS地圖
- 劫持GPS定位&劫持WIFI定位WiFi
- 定位
- 簡單的linux Oops定位到bug程式碼行操作實踐LinuxOOP
- 簡單IScroll的實現,定位子盒子寬高都要注意
- JavaScript 滾動條定位指定位置JavaScript
- 1-相對定位、絕對定位和固定定位的區別
- 重定位
- CSS——定位CSS
- 元素定位
- GPS定位
- Position定位
- CSS定位CSS
- HTML5 Geolocation(地理定位)簡介HTML
- 騰訊地圖定位及座標解析地圖
- 爬蟲之xpath精準定位--位置定位爬蟲
- Python全棧Web(定位佈局、定位方式)Python全棧Web
- CSS-定位CSS
- appium元素定位APP
- 個人定位
- 小程式定位
- css之定位CSS
- CSS_定位CSS
- 浮動、定位
- css絕對定位和相對定位的差別CSS
- Java高精度定位系統原始碼 UWB定位系統原始碼 定位系統原始碼Java原始碼
- 一篇文章看懂大資料分析就業前景及職能定位大資料就業
- 極簡架構模式-服務定位器模式架構模式
- uni-app定位獲取自身和附近定位資訊APP
- CSS之定位PositionCSS
- css 定位器CSS
- CSS 定位詳解CSS
- 什麼是定位?
- Position定位詳解
- CSS的定位:positionCSS
- HTML 錨點定位HTML
- 移動端定位
- css定位詳解CSS