MapKitでMKMapViewを表示し、任意の場所にピンを立てる。
MapKitの使い方で少々苦労したのでメモ
まず、「Linked Frameworks and Libraries」というところに「MapKit.framework」を追加。
(xcodeの「Build Settings」などが選択できるページの「General」タブの下部にある)
MainViewController.m
#import <MapKit/MapKit.h> @interface MainViewController ()<MKMapViewDelegate> @property (storng, nonatomic)MKMapView *mapView @end @implementation MainViewController - (id)init { self = [super init]; if (self) { } return self; } -(void)viewDidLoad { //Map表示(画面いっぱい) //大きさを指定して初期化 self.mapView = [[MKMapView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; self.mapView.delegate = self; [self.view addSubview:self.mapView]; //緯度と経度を設定(これは東京タワー) double latitude = 35.65858; double longitude = 139.745433; //Mapの表示を指定 MKCoordinateRegion region = self.mapView.region; region.span.latitudeDelta = 0.05; //緯度の倍率 region.span.longitudeDelta = 0.05; //経度の倍率 region.center = CLLocationCoordinate2DMake(latitude, longitude); //表示位置の緯度と経度 [self.mapView setRegion:region animated:YES]; //Pin表示 MKPointAnnotation *annotation = [[MKPointAnnotation alloc]init]; annotation.coordinate = CLLocationCoordinate2DMake(latitude, longitude); //ピンをたてる位置を指定 [self.mapView addAnnotation:annotation]; } @end
MKMapViewを理解する上で大事なのが、
MKCoordinateRegionとMKPointAnnotation。
ほかのUIパーツのようにパーツそのもののプロパティに色々設定するのではなく、
mapviewはただ表示だけさせる。
regionというオブジェクトでどの位置に表示させて、倍率等をどうするか指定。
pinはannotationというオブジェクトで位置などを指定。
それぞれをmapviewにセットする。
絶対に挫折しない iPhoneアプリ開発「超」入門【iOS7対応】増補改訂版
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/01/28
- メディア: 大型本
- この商品を含むブログを見る