Amazon Location の初期コードを設定する - Amazon Location Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Location の初期コードを設定する

このページでは、Amazon Location Service と統合するサンプル iOS アプリケーションの初期コードを示します。このコードを出発点として、マップ、ジオコーディング、ジオフェンシング、追跡、ルーティングなどの機能を活用して、位置情報に対応した iOS アプリケーションを構築できます。

アプリでロケーションアクセス許可を有効にする
  1. Xcode プロジェクトを開きます。

  2. プロジェクトの Info.plist ファイルを見つけます。

  3. アプリの要件に基づいて、ロケーション許可に必要なキーを追加します。キーは次のとおりです。

    • NSLocationWhenInUseUsageDescription: アプリケーションが使用中にロケーションアクセスを必要とする理由の説明。

    • NSLocationAlwaysAndWhenInUseUsageDescription: アプリに継続的なロケーションアクセスが必要な理由の説明。

次に、アプリでリソース値を設定する必要があります。という名前の新しいファイルを追加Config.xcconfigし、Amazon コンソールで以前に作成した値を入力します。

REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
  1. 左側のナビゲーターセクションから、プロジェクトを選択します。

  2. ターゲットセクションで、アプリを選択し、情報タブをクリックします。

  3. 次のような値で情報プロパティを追加します。

  4. 以下の内容を含むConfig.swiftファイルを追加します。これにより、バンドル情報ファイルから設定値が読み取られます。

    import Foundation enum Config { static let region = Bundle.main.object(forInfoDictionaryKey: "Region") as! String static let mapName = Bundle.main.object(forInfoDictionaryKey: "MapName") as! String static let indexName = Bundle.main.object(forInfoDictionaryKey: "IndexName") as! String static let identityPoolId = Bundle.main.object(forInfoDictionaryKey: "IdentityPoolId") as! String static let trackerName = Bundle.main.object(forInfoDictionaryKey: "TrackerName") as! String }
  5. 名前で新しいフォルダを作成しViewModel、その中にTrackingViewModel.swiftファイルを追加します。

    import SwiftUI import AmazonLocationiOSAuthSDK import MapLibre final class TrackingViewModel : ObservableObject { @Published var trackingButtonText = NSLocalizedString("StartTrackingLabel", comment: "") @Published var trackingButtonColor = Color.blue @Published var trackingButtonIcon = "play.circle" @Published var region : String @Published var mapName : String @Published var indexName : String @Published var identityPoolId : String @Published var trackerName : String @Published var showAlert = false @Published var alertTitle = "" @Published var alertMessage = "" @Published var centerLabel = "" var clientIntialised: Bool var client: LocationTracker! var authHelper: AuthHelper var credentialsProvider: LocationCredentialsProvider? var mlnMapView: MLNMapView? var mapViewDelegate: MapViewDelegate? var lastGetTrackingTime: Date? var trackingActive: Bool init(region: String, mapName: String, indexName: String, identityPoolId: String, trackerName: String) { self.region = region self.mapName = mapName self.indexName = indexName self.identityPoolId = identityPoolId self.trackerName = trackerName self.authHelper = AuthHelper() self.trackingActive = false self.clientIntialised = false } func authWithCognito(identityPoolId: String?) { guard let identityPoolId = identityPoolId?.trimmingCharacters(in: .whitespacesAndNewlines) else { alertTitle = NSLocalizedString("Error", comment: "") alertMessage = NSLocalizedString("NotAllFieldsAreConfigured", comment: "") showAlert = true return } credentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: identityPoolId) initializeClient() } func initializeClient() { client = LocationTracker(provider: credentialsProvider!, trackerName: trackerName) clientIntialised = true } }