iOS開發中地圖(MapKit)的使用
首先要引入MapKit.framework的框架
將#import
但是運行結果可以出現地圖但是一直出現這樣的錯誤該怎麼解決
Apr 7 18:26:27 Amorming.local dingwei[600]
2014-04-07 18:26:27.843 dingwei[600:7b03] vImage decode failed, falling back to CG path.
以下是代碼
GPSViewController.h文件中
#import#import #import @interface GPSViewController : UIViewController @property(nonatomic,retain) CLLocationManager* locationmanager; @property(nonatomic,retain) CLGeocoder* geocoder; @end
GPSViewController.m文件中
#import "GPSViewController.h" @interface GPSViewController () @end @implementation GPSViewController @synthesize locationmanager,geocoder; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //初始化地圖視圖 MKMapView* mapview = [[MKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; //地圖的代理方法 mapview.delegate = self; //是否顯示當前的位置 mapview.showsUserLocation = YES; //地圖的類型, iOS開發中自帶的地圖 //使用第三方的地圖可以查找周邊環境的餐館,學校之類的 /* MKMapTypeStandard 標准地圖 MKMapTypeSatellite 衛星地圖 MKMapTypeHybrid 混合地圖 */ mapview.mapType = MKMapTypeStandard; //河南南陽的經緯度,初始化的坐標 CLLocationCoordinate2D coor2d = {33.00,112.52}; //CLLocationCoordinate2D coor2d = {37.7,112.4}; //顯示范圍,數值越大,范圍就越大 MKCoordinateSpan span = {5,5}; MKCoordinateRegion region = {coor2d,span}; //是否允許縮放,一般都會讓縮放的 //mapview.zoomEnabled = NO; //mapview.scrollEnabled = NO; //地圖初始化時顯示的區域 [mapview setRegion:region]; [self.view addSubview:mapview]; locationmanager = [[CLLocationManager alloc]init]; //設置精度 /* kCLLocationAccuracyBest kCLLocationAccuracyNearestTenMeters kCLLocationAccuracyHundredMeters kCLLocationAccuracyHundredMeters kCLLocationAccuracyKilometer kCLLocationAccuracyThreeKilometers */ //設置定位的精度 [locationmanager setDesiredAccuracy:kCLLocationAccuracyBest]; //實現協議 locationmanager.delegate = self; NSLog(@"開始定位"); //開始定位 [locationmanager startUpdatingLocation]; } #pragma mark locationManager delegate //實現定位 6.0 過期的做法 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { NSLog(@"hello"); //打印出精度和緯度 CLLocationCoordinate2D coordinate = newLocation.coordinate; NSLog(@"輸出當前的精度和緯度"); NSLog(@"精度:%f 緯度:%f",coordinate.latitude,coordinate.longitude); //停止定位 [locationmanager stopUpdatingLocation]; //計算兩個位置的距離 float distance = [newLocation distanceFromLocation:oldLocation]; NSLog(@" 距離 %f",distance); //====位置的反編碼 5.0 之後的 /* */ geocoder = [[CLGeocoder alloc]init]; [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray*placemarks,NSError* error) { //NSLog(@"hffjv"); for (CLPlacemark* place in placemarks) { //NSLog(@"hffjv"); NSLog(@"name %@",place.name); //位置 NSLog(@"thoroughfare %@",place.thoroughfare);//街道 //子街道 NSLog(@"subthoroughfare %@",place.subAdministrativeArea); //市 NSLog(@"loclitity %@",place.locality); //區 NSLog(@"subLocality %@",place.subLocality); //國家 NSLog(@"country %@",place.country); NSLog(@"hffjv"); } }]; } // 6.0 之後新增的位置調用方法 /*-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { for (CLLocation* location in locations) { NSLog(@"%@",location); } //停止定位 // [manager stopUpdatingLocation]; } */ #pragma mark MKMapViewDelegate的代理方法 //返回標注視圖(大頭針視圖) /*- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation { }*/ //更新當前位置調用 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { } //選中注釋圖標 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view { } //地圖的顯示區域改變了調用 - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { } @end