iOSには地図を表示するために MapView が用意されています。簡単に地図が作れるのでやってみましょう。尚、Swift のケースはこちらです
MapView
コードを書かなくても簡単な地図表示ができますので確かめて見ましょう。
以前は MapKit.framwork のようにframeworkを追加していましたが、その必要はなくなりました。
Map View を探し出して
View Controller に置きます
これでビルドして実行すると
日本地図が表示されます。
シミュレーターではアメリカになるかもしれませんが
地図上で位置表示
これに、緯度経度と縮尺情報をいれて
期待する位置を地図で表したいと思います。
MapKit/MapKit.h をインポートして
Delegate を設定します。
storyboard で画面に置いた Map View と接続するため
IBOutlet MKMapView *mapView でインスタンスを生成します。
ViewController.h
1 2 3 4 5 6 7 8 |
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> @interface ViewController : UIViewController<MKMapViewDelegate> @property IBOutlet MKMapView *mapView; @end |
ViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Delegate をセット self.mapView.delegate = self; // 緯度・軽度を設定 CLLocationCoordinate2D location; location.latitude = 35.68154; location.longitude = 139.752498; [self.mapView setCenterCoordinate:location animated:NO]; // 縮尺を設定 MKCoordinateRegion region = self.mapView.region; region.center = location; region.span.latitudeDelta = 0.02; region.span.longitudeDelta = 0.02; [self.mapView setRegion:region animated:NO]; // 表示タイプを航空写真と地図のハイブリッドに設定 self.mapView.mapType = MKMapTypeHybrid; // view に追加 [self.view addSubview:self.mapView]; } @end |
後は sroryboard にMapViewを配置
IBOutlet の mapView を接続してビルド実行すると、このように皇居が表示されます。
その他のメソッド
1 2 |
MKMapView *mapView2 = [[MKMapView alloc] init]; // サイズを指定して生成する場合 |
1 2 3 |
self.mapView.mapType = MKMapTypeHybrid;// 標準の地図+航空写真 self.mapView.mapType = MKMapTypeStandard;// 標準の地図(デフォルト) self.mapView.mapType = MKMapTypeSatellite;// 航空写真 |
1 2 |
// ユーザーの場所 MKUserLocation *userLocation; |
Reference:
MKMapView – MapKit | Apple Developer Documentation