目前耳舅,地圖和定位功能被大量使用于應(yīng)用開發(fā)中碌上,在實(shí)際使用中定位這一功能可以服務(wù)于我們,使我們的生活更加便捷浦徊,多彩绍赛,例如,你到了一個(gè)地方,想找一找周邊的美食或者酒店其他的辑畦,打開相應(yīng)的軟件,軟件就會自動(dòng)定位并幫我們查找周邊腿倚。
那么這一功能是如何實(shí)現(xiàn)的呢纯出,今天就讓我們來了解一下在開發(fā)過程中如何使用地圖和定位。
地圖視圖依賴于MapKit這一類敷燎,而定位則依賴于CoreLocation這一類暂筝,所以我們使用地圖和定位時(shí)需要先添加這兩個(gè)類
首先我們先聲明一個(gè)私有地圖變量
//聲明一個(gè)地圖視圖
@property(nonatomic,strong)MKMapView *mapView;
然后初始化這個(gè)地圖并添加到視圖
//1 創(chuàng)建地圖
self.mapView = [[MKMapView alloc]initWithFrame:[UIScreen mainScreen].bounds];
//把地圖添加進(jìn)控制器
[self.view addSubview:_mapView];
我們還可以根據(jù)地圖的屬性進(jìn)行不同的設(shè)置
例如我們可以通過MKMapType來設(shè)置地圖類型,xcode為我們提供了三種地圖模式可選
MKMapTypeStandard | 標(biāo)準(zhǔn)式的行政地圖(會顯示城市硬贯,街道等) |
MKMapTypeSatellite | 標(biāo)準(zhǔn)的衛(wèi)星地圖 |
MKMapTypeHybrid | 混合地圖(在衛(wèi)星圖上顯示街道等名稱) |
//地圖類型
_mapView.mapType = MKMapTypeStandard;
這樣一張簡單的世界地圖就顯示出來了
如果我們需要使用定位功能在創(chuàng)建地圖之后焕襟,需要開啟定位功能
//開啟定位
//創(chuàng)建定位管理對象
CLLocationManager *locationManager = [[CLLocationManager alloc]init];
//判斷當(dāng)前定位是否可用
if (![CLLocationManager locationServicesEnabled]) {
return;
}
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined ) {
[locationManager requestWhenInUseAuthorization];
}else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse){
//設(shè)置定位精度
locationManager .desiredAccuracy = kCLLocationAccuracyBest;
//設(shè)置沒移動(dòng)多少米獲取一次位置
locationManager.distanceFilter = 100;
//開啟定位
[locationManager startUpdatingLocation];
}
如果開發(fā)需要我們也可以根據(jù)情況關(guān)閉定位
- (void) stopUpdatingLocation;
當(dāng)然這只是關(guān)于xcode原生地圖和定位的簡單使用, 但是在我們開發(fā)中往往會使用一些第三方地圖服務(wù)饭豹,例如百度地圖鸵赖、高德地圖等等,并且這些第三方為我們提供了較為詳細(xì)的使用說明拄衰,如果有需要的朋友可以參考以下鏈接:
高德地圖開發(fā)平臺:http://lbs.amap.com
百度地圖開放平臺:http://lbsyun.baidu.com/index.php?title=iossdk