シンプルな地図アプリの作成 (iOS)

iOS SDK を用いたモバイル地図アプリの作成方法を紹介します。

SDK のインストール

ArcGIS Runtime SDK for iOS のライブラリをインストールします。

  1. SDK のダウンロードページ にアクセスします(開発者アカウント でサインインします)。

  2. ArcGIS Runtime SDK for iOS の箇所の [Download] をクリックして、インストーラーをダウンロードします。

  3. ダウンロードしたインストーラー(.pkg ファイル)を実行して SDK をインストールします。

サンプル プロジェクトのダウンロード

このリポジトリ(arcgis-dev-resources)には開発を試してみたい方向けのサンプル コードが含まれています。ダウンロードする際の方法は 2 通りあります。

  • リポジトリをご自身のアカウントに Fork(複製)

    1. GitHub にログインして、arcgis-dev-resources ページを開いて [Fork] をクリックすると、ご自身のアカウントに同じリポジトリが作成されます。
    2. Fork 後はご自身のローカル マシンにクローンを作成します。
  • zip ファイルでダウンロード(※GitHub アカウントをお持ちでない方向け)

    arcgis-dev-resources ページを開いて [Download ZIP] をクリックするとプロジェクト ファイル一式が手に入ります。

地図の表示

まずはダウンロードしたサンプル プロジェクトを実行してみましょう。

  1. ダウンロードしたサンプル プロジェクト(arcgis-dev-resources/startup/ios/100.x/map/sample.xcodeproj)を Xcode で開きます。

  2. ViewController.swift の 24 行目にある以下のコードの <Web マップ ID> と記載されている箇所に Web マップの作成 で作成した Web マップ ID を上書きします。

    let portalItem = AGSPortalItem(portal: portal, itemID: "<Web マップ ID>")
    

    まだ Web マップを作成しておらず、すぐに試してみたい方はサンプル Web マップをご利用ください。

  3. サンプル プロジェクトを実行すると、以下のように地図が表示されます。

    Web マップを表示するには、最初に地図を表示するビュー(AGSMapView クラス)を作成し、作成したビュー上で Web マップを開きます。

現在位置の表示

iOS の位置情報サービスと連携し、端末の現在位置を地図上に表示します。

  1. ViewController.swiftviewDidLoad 関数に現在位置を表示する処理を記述します。

    // 位置情報の表示モードを設定(現在位置を中心にマップをズームして表示する)
    self.mapView.locationDisplay.autoPanMode = .recenter
    
    // マップが現在位置にズームされる際の表示縮尺の設定
    self.mapView.locationDisplay.initialZoomScale = 100000
    
    // 現在位置の表示を開始
    self.mapView.locationDisplay.start(completion: { (error) -> Void in
     if let error = error {
        print("位置情報の取得のエラー:\(error.localizedDescription)")
     } else {
        print("位置情報の取得に成功")
     }
    })
    
  2. プロジェクトを実行すると、以下のように現在位置を表す青い丸のシンボルが地図上に表示されます。

    シミュレータで実行する場合は、iOS シミュレータの [Debug] → [Location] メニューで設定することで、端末の位置情報を擬似表現できます。

    アプリが起動すると「マップ上での現在位置確認に位置情報サービスを使用します。」と位置情報サービスの使用を確認するメッセージが表示されます。このメッセージはサンプル プロジェクトの Info.plist ファイルの NSLocationWhenInUseUsageDescription プロパティで設定できます。

    位置情報の表示モードには、off(ズームしないで現在位置のシンボルをマップ上に表示する)、recenter(現在位置を中心にマップをズームする)、navigation(現在位置を常にマップの下部に表示して、端末の進行方向によってマップを回転する)、compassNavigation(現在位置を常にマップの中心に表示して、端末の向いている方向によってマップを回転する)の 4 つのモードが用意されています。


アプリの動作が確認できたら ArcGIS の OAuth 認証について学びましょう!