iOS地圖、定位_第1頁(yè)
iOS地圖、定位_第2頁(yè)
iOS地圖、定位_第3頁(yè)
iOS地圖、定位_第4頁(yè)
iOS地圖、定位_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、地圖、定位定位:1、 info.plist文件設(shè)置ios8以后,使用定位需要在info.plist文件中添加兩個(gè)字段NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription2、 導(dǎo)入CoreLocation.framework框架并導(dǎo)入頭文件#import <CoreLocation/CoreLocation.h>3、 判斷定位服務(wù)是否打開if (!CLLocationManager locationServicesEnabled) NSLog("定位不可用"); 4、 創(chuàng)建定位管理

2、器CLLocationManager *_manager = CLLocationManager allocinit;5、 判斷是否授權(quán),如果未授權(quán)則發(fā)送授權(quán)請(qǐng)求if (CLLocationManager authorizationStatus=kCLAuthorizationStatusNotDetermined) _manager requestWhenInUseAuthorization; 6、 設(shè)置代理(CLLocationManagerDelegate)_manager.delegate=self;7、 設(shè)置精度_manager.desiredAccuracy=kCLLocation

3、AccuracyBest;8、 設(shè)置定位頻率,多少米定位一次_manager.distanceFilter=10.0;9、 開始定位_manager startUpdatingLocation;10、 停止定位_manager stopUpdatingLocation;11、 代理方法-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error /定位失敗-(void)locationManager:(CLLocationManager *)manager didUpdateLocat

4、ions:(NSArray *)locations CLLocation *location = locations firstObject;CLLocationCoordinate2D coordinate=location.coordinate; NSLog("經(jīng)度:%f,緯度:%f,海拔:%f,航向:%f,行走速度:%f",coordinate.longitude,coordinate.latitude,location.altitude,location.course,location.speed); 地理編碼,根據(jù)地址得出經(jīng)緯度、詳細(xì)信息等 CLGeocoder

5、*geocode = CLGeocoder allocinit; geocode geocodeAddressString:"泰山" completionHandler:(NSArray *placemarks, NSError *error) CLPlacemark *place = placemarks firstObject; CLLocation *location = place.location;/位置 CLRegion *region = place.region;/區(qū)域 NSDictionary *dic = place.addressDictionary;

6、/詳細(xì)地址信息字典,包含以下字段 NSString *name=;/地名 NSString *thoroughfare=place.thoroughfare;/街道 NSString *subThoroughfare=place.subThoroughfare; /街道相關(guān)信息,例如門牌等 NSString *locality=place.locality; / 城市 NSString *subLocality=place.subLocality; / 城市相關(guān)信息,例如標(biāo)志性建筑 NSString *administrativeArea=place.administrat

7、iveArea; / 州 NSString *subAdministrativeArea=place.subAdministrativeArea; /其他行政區(qū)域信息 NSString *postalCode=place.postalCode; /郵編 NSString *ISOcountryCode=place.ISOcountryCode; /國(guó)家編碼 NSString *country=place.country; /國(guó)家 NSString *inlandWater=place.inlandWater; /水源、湖泊 NSString *ocean=place.ocean; / 海洋 N

8、SArray *areasOfInterest=place.areasOfInterest; /關(guān)聯(lián)的或利益相關(guān)的地標(biāo) ;反向地理編碼,根據(jù)經(jīng)緯度得出具體的地址信息 CLLocation *location=CLLocation allocinitWithLatitude:36.228 longitude:117.042; CLGeocoder *geocoder = CLGeocoder allocinit; geocoder reverseGeocodeLocation:location completionHandler:(NSArray *placemarks, NSError *er

9、ror) CLPlacemark *placemark=placemarks firstObject; NSLog("詳細(xì)信息:%",placemark.addressDictionary); ;地圖:1、 導(dǎo)入MapKit.framework,并導(dǎo)入#import <MapKit/MapKit.h>頭文件,實(shí)現(xiàn)MKMapViewDelegate協(xié)議2、 創(chuàng)建_mapView = MKMapView alloc initWithFrame:self.view.bounds;3、 設(shè)置代理_mapView.delegate = self;4、 是否顯示用戶位置_m

10、apView.showsUserLocation = YES;5、 用戶位置跟蹤_mapView.userTrackingMode = MKUserTrackingModeFollow;/可以省略,但是需要自己設(shè)置地圖的縮放級(jí)別6、 代理方法:獲取用戶當(dāng)前位置-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation MKCoordinateSpan span=MKCoordinateSpanMake(0.01, 0.01); MKCoordinateRegion region

11、=MKCoordinateRegionMake(userLocation.location.coordinate, span); _mapView setRegion:region animated:true;/設(shè)置地圖縮放級(jí)別7、 地圖顯示范圍發(fā)生改變-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated NSLog("地圖顯示范圍發(fā)生改變");8、 添加大頭針MKPointAnnotation *point = MKPointAnnotation allocinit;/初始化p

12、oint.title = "大頭針"/標(biāo)題point.subtitle = "我是大頭針"/子標(biāo)題point.coordinate = CLLocationCoordinate2DMake(36.236867, 117.054895);/經(jīng)緯度_mapView addAnnotation:point;9、 大頭針被點(diǎn)擊-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view NSLog("大頭針被點(diǎn)擊");10、 自定義大頭

13、針視圖-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation if (annotation isKindOfClass:MKPointAnnotation class) /判斷是不是自己添加的大頭針 static NSString *key1="AnnotationKey1" MKAnnotationView *annotationView=_mapView dequeueReusableAnnotationViewWithI

14、dentifier:key1;/獲取大頭針視圖 /如果緩存池中不存在則新建 if (!annotationView) annotationView=MKAnnotationView allocinitWithAnnotation:annotation reuseIdentifier:key1; annotationView.canShowCallout=true;/允許交互點(diǎn)擊 annotationView.calloutOffset=CGPointMake(0, 1);/定義詳情視圖偏移量 UIButton *button = UIButton buttonWithType:UIButton

15、TypeCustom; button.frame = CGRectMake(0, 0, 40, 40); button setBackgroundImage:UIImage imageNamed:"icon_classify_cafe.png" forState:UIControlStateNormal; annotationView.leftCalloutAccessoryView=button;/定義詳情左側(cè)視圖 /修改大頭針視圖 /重新設(shè)置此類大頭針視圖的大頭針模型(因?yàn)橛锌赡苁菑木彺娉刂腥〕鰜?lái)的,位置是放到緩存池時(shí)的位置) annotationView.annota

16、tion=annotation; annotationView.image=UIImage imageNamed:"icon_paopao_waterdrop_streetscape"/設(shè)置大頭針視圖的圖片 return annotationView; else return nil; 11、 大頭針左側(cè)或者右側(cè)視圖被點(diǎn)擊-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control i

17、f (control isKindOfClass:UIButton class) NSLog("121212"); 12、 調(diào)用系統(tǒng)自帶地圖進(jìn)行導(dǎo)航-(void)turnByTurn /根據(jù)“泰山學(xué)院”地理編碼 CLGeocoder *_geocoder = CLGeocoder alloc init; _geocoder geocodeAddressString:"泰山學(xué)院" completionHandler:(NSArray *placemarks, NSError *error) CLPlacemark *clPlacemark1=placema

18、rks firstObject;/獲取第一個(gè)地標(biāo) MKPlacemark *mkPlacemark1=MKPlacemark allocinitWithPlacemark:clPlacemark1; /注意地理編碼一次只能定位到一個(gè)位置,不能同時(shí)定位,所在放到第一個(gè)位置定位完成回調(diào)函數(shù)中再次定位 _geocoder geocodeAddressString:"山東省泰安市泰山站" completionHandler:(NSArray *placemarks, NSError *error) CLPlacemark *clPlacemark2=placemarks firstObject;/獲取第一個(gè)地標(biāo) MKPlacemark *mkPlacemark2=MKPlacemark allocinitWithPlacemark:clPlacemark2; NSDictionary *options=MKLaunchOptionsMapTypeKey:(MKMapTypeSt

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論