地図を表示する
地図の表示
ZDC Maps SDKを利用してビュー上に地図を表示する方法を説明します。
プログラムの中で、認証のためクライアントIDと秘密鍵の情報が必要となります。
契約情報を確認して、この2つを用意しておいて下さい。
画面に地図を表示するには、Xcodeの雛形で生成された以下の3つのファイルを編集します。
-
AppDelegate.m
-
ViewController.h
-
VIewController.m
以降に、それぞれのファイルに追記する内容を説明します。
1:AppDelegate.mの編集
まず、ZDC Maps SDKを利用するため、ヘッダファイルをimportします。
#import <ZDCMaps/ZDCMaps.h>
次に、application:didFinishLaunchingWithOptions:メソッドの先頭にて、認証用のクライアントIDと秘密鍵の情報を以下のように設定します。
CertifiacateDomainは検証環境と本番環境でそれぞれドメインが異なりますので注意して下さい。
//検証用
[ZMSServices provideConsumerKey:@"your_clientID" SecretKey:@"your_secretKey" CertificateDomain:@"test.core.its-mo.com"];
//本番用
[ZMSServices provideConsumerKey:@"your_clientID" SecretKey:@"your_secretKey" CertificateDomain:@"core.its-mo.com"];
2:ViewController.hの編集
このファイルでも、ZDC Maps SDKを利用するため、ヘッダファイルをimportします。
#import <ZDCMaps/ZDCMaps.h>
地図の各種状態変化の通知を受けるためViewControllerにZMSMapViewDelegateプロトコルを採用します。
@interface ViewController : UIViewController <ZMSMapViewDelegate>
ちなみにZMSMapViewDeleteプロトコルのメソッドはすべてOptionalとなっているため、必須の実装メソッドはありません。
3:ViewController.mの編集
地図を表示するビューをプロパティとして宣言します。
@property (nonatomic,strong) ZMSMapView *map;
地図の中心位置を定義するカメラオブジェクトのインスタンスを生成します。
ここでは、例として以下の位置の地図を表示します。
緯度経度 |
35.6276017, 139.7409166 |
回転角度 |
0度 |
ズームレベル |
13.0 |
ZMSCameraPosition *camera = [ZMSCameraPosition cameraWithLatitude:35.6276017 longitude:139.7409166 bering:0.0f zoom:13];
self.map = [ZMSMapView mapWithFrame:self.view.frame camera:camera];
ZMSMapViewDelegateの通知を受けるため、selfをZMSMapViewのdegateに代入します。
self.map.delegate = self;
ZMSMapViewのメンバmapTypeに、ZMSMapViewのメンバmapTypeList配列から取り出したデザイン名を設定します。
self.map.mapType = self.map.mapTypeList[0];
複数の地図デザインが利用可能な場合、同様にmapTypeList配列の添字を変更して設定できます。
最後に生成した地図のビューをコントロールのビューに追加します。
[self.view addSubview:self.map];
ViewController.mの編集は以上です。完成したプログラムは以下のようになっているはずです。
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) ZMSMapView *map;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
ZMSCameraPosition *camera = [ZMSCameraPosition cameraWithLatitude:35.6276017 longitude:139.7409166 bering:0.0f zoom:13];
self.map = [ZMSMapView mapWithFrame:self.view.frame camera:camera];
self.map.delegate = self;
self.map.mapType = self.map.mapTypeList[0];
[self.view addSubview:self.map];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
それでは、プログラムを実行してみましょう。 MacにiOSデバイス実機を接続し、プロジェクトのビルドターゲットを接続中のiOSデバイスに設定して下さい。
※ZDC Maps SDKはシミューレーター用にビルドはできません。
ビルドターゲットの設定が終わったら、Build and Runボタンを押して実行してみましょう。 問題がなければ、iOSデバイスに以下のような画面が表示されるはずです。
以上でビューに地図を表示する方法は完了です。