Swift を使用してシンプルな HERE SDK アプリを作成します
このチュートリアルでは 、 Swift プログラミング言語を使用して簡単なアプリケーションを作成する方法について説明します。 Objective-C のチュートリアルと同じ です。このチュートリアルは、 HERE SDK を使用して簡単なアプリを作成するにあります。
- 新しい Xcode プロジェクトを作成します
- 必要なリソースとマップ ビューをプロジェクトに追加します
- 地図サービスにアクセスするために、 HERE から資格情報を取得します
- マップ ビューを初期化して、クライアントデバイスでレンダリングするためのマップインスタンスを作成します
SDK for iOS のサンプルプロジェクト
このチュートリアルで説明する Xcode プロジェクトのコピーは sample-apps
、 SDK for iOS パッケージのフォルダにあります。 プロジェクトを実行するに SwiftHelloMap.xcodeproj
README.txt
は、をダブルクリックし、ファイルの指示に従います。
新しいシングルビューアプリケーションを作成します
- Xcode メニューから して、新規プロジェクトダイアログボックスを開きます ( または、 Shift キーを押しながら Command キーを押しながら N キーを押します ) 。
- 作成するアプリケーションの種類として、 を選択します。 次へを押します。
- 次のダイアログで 、製品名
HelloMap
(など)と 組織 ID ( などedu.self
)を入力します。 - [ 言語 ] の下の [Swift] を選択し 、 [ 次へ] をクリックします。
- プロジェクトを保存するディレクトリに移動 し、 [ 作成 ] を選択します。
- 次の手順で は、このプロジェクトで HERE SDK を使用するように設定します。
アプリケーションを設定します
- iOS for SDK アーカイブをローカルファイルシステムの任意の場所に展開します。
-
NMAKit.xcframework
を Xcode プロジェクトに追加します。 アプリのターゲットをクリックし 、 [ 全般 ] タブを選択します。 「フレームワーク、ライブラリ、および埋め込みコンテンツ」というセクションを探し、プラス記号 (+) をクリックし、「その他を追加」をクリックして、「ファイルを追加」をクリックします。 [ ファイル ] ダイアログボックスで 、NMAKit.xcframework
[ フォルダ ] を選択 し、 [ 完了 ] をクリックします。 -
NMAKit.xcframework
がフレームワーク、ライブラリ 、および埋め込みコンテンツセクションに表示されていることを確認します。 - アプリケーションを実行します。 Xcode メニューバーで します。 プロジェクトが iOS シミュレータでエラーなく実行されていることを確認してください。
- SDK for iOS が Xcode プロジェクトで使用できるようになりました。 HERE SDK で動作するようにプロジェクトが設定されました。サンプルアプリケーションを拡張して、マップをレンダリングしてください。
マップ ビューを作成します
このセクションでは NMAMapView
、および NMAGeoCoordinates
クラスを使用してマップをレンダリングします。
-
を作成
NMAMapView
します。-
Main.storyboard
ナビゲータでを選択し、 Command + Option + Control + 3 キーを押してユーティリティビューを開きます。 View オブジェクトを Object ライブラリから View Controller にドラッグアンドドロップします。 必要に応じて、ビューのサイズを変更して、表示領域全体を表示できるようにします。 - Interface Builder で、作成したビューをクリックし、 Command + Option + 3 キーを押してユーティリティビューで Identity Inspector を開きます。 クラスの値を
UIView
からに変更NMAMapView
し、 Return キーを押します。 [ ドキュメントのアウトライン マップ ビュー] に、ビューの名前が [ ビュー ] から [ ビュー ] に変更されたことが表示されます。
-
-
NMAMapView
IN のアウトレットを作成ViewController
します。-
Main.storyboard
ナビゲータでを選択します。 - Command + Option + Return キーを押して、 Assistant Editor を開きます。 表示されます
ViewController.swift
。 - このファイルの先頭に次のインポートステートメントを追加します。
import NMAKit
- キーボードの Control キーを押しながら、クリックし
ViewController.swift
てマップ ビューからのインターフェイスブロックにドラッグします。 青色の線が表示され、ツールチップに「コンセントまたはコンセントの接続を挿入してください」と表示されます。 マウスボタンを離すと、ダイアログが表示され、アウトレットを作成できます。 -
アウトレットに名前を付け
mapView
、他のデフォルトオプションを保持してから、 [ 接続 ] を選択します。
-
-
アウトレットがに
NMAMapView
設定されました。 変更されたファイルは次のとおりです。import UIKit import NMAKit class ViewController: UIViewController { @IBOutlet weak var mapView: NMAMapView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
-
NMAMapView
viewDidLoad()
機能をviewWillAppear(animated)
AND で置き換えて、セットアップおよびライフサイクルコードを実装addMapCircle()
します。override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) mapView.useHighResolutionMap = true mapView.zoomLevel = 13.2 mapView.set(geoCenter: NMAGeoCoordinates(latitude: 49.258867, longitude: -123.008046), animation: .linear) // Note, logo is not shown when its size is greater than 1/8 of NMAMapView's height or width. mapView.copyrightLogoPosition = NMALayoutPosition.bottomCenter addMapCircle() } func addMapCircle() { if mapCircle == nil { let coordinates: NMAGeoCoordinates = NMAGeoCoordinates(latitude: 49.258867, longitude: -123.008046) mapCircle = NMAMapCircle(coordinates: coordinates, radius: 50) mapView.add(mapCircle!) } }
- HEREアプリケーションの資格情報を追加します。
-
AppDelegate.swift
ファイルを開き、NMAKit
次のインポートステートメントをファイルの先頭に追加してインポートします。import NMAKit
- Add the following in
didFinishLaunchingWithOptions
function replacingYOUR_APP_ID
,YOUR_APP_CODE
andYOUR_LICENSE_KEY
with the credentials that you received from your https://here-tech.skawa.fun.NMAApplicationContext.setAppId("YOUR_APP_ID", appCode: "YOUR_APP_CODE", licenseKey: "YOUR_LICENSE_KEY")
注意 :didFinishLaunchingWithOptions
HERE SDK 資格情報を設定するのに最適な場所ではない可能性があります。 たとえば、初期の View Controller が Storyboard 内にあり、その HERE SDK プロパティを宣言でインスタンス化する場合です。 この場合、インスタンス化は前に行われ、didFinishLaunchingWithOptions
HERE SDK の動作は未定義になります。 この問題を回避AppDelegate.swift
するには、のプロパティに資格情報セットアップを割り当てます。 -
-
アプリケーションをビルドして実行します。 ビルドが正常に完了すると、次のスクリーンショットと同様のマップを表示するアプリケーションが作成され、ジェスチャを使用して操作できるようになります。