チュートリアル: キャッシュされたマップ サービスの作成

複雑性: 中級 データ要件: 独自データの使用 目的: クライアント アプリケーションで利用できるキャッシュされたマップ サービスを作成します。

高速なマップ サービスを作成するための最も効果的な方法は、それらをキャッシュすることです。マップ サービスをキャッシュするとき、サーバは定義した一連の縮尺レベルでマップを描画し、イメージを保存します。サーバがマップへのリクエストを受け取ったときにマップを再び描画するよりも、キャッシュされたイメージの 1 つを返すほうがはるかに高速です。

キャッシュは、あまり変更されないベースマップやマップに適しています。まれにしか変更しないマップのために、キャッシュを更新するためのツールが提供されています。パフォーマンスを最適化するためには、できるだけ多くのレイヤをキャッシュする必要があります。マップを 2 つ作成し、キャッシュに適したレイヤとキャッシュに適さないレイヤを分離することで効率的な場合があります。たとえば、キャッシュされたマップ サービスをベースマップ レイヤとして作成し、キャッシュされないマップ サービスを、リアルタイムに更新されるレイヤ、または解析やモデリングにより変化するレイヤとして作成することができます。

効果的なマップ キャッシュを作成するためには、キャッシュを構築する前に入念な設計と作成作業を行う必要があります。このチュートリアルでは、ArcGIS Online / Bing Maps / Google マップ タイル スキーマを使用してキャッシュされるマップを計画および作成する手順について説明します。続いてマップ サービスを公開し、公開と同時にキャッシュを作成するように指定します。最後に、クライアント アプリケーションでキャッシュをテストします。

このチュートリアルは、組織内のキャッシュ作成作業に合わせて準備を整えるための練習用として用意されています。主に次の 3 つのセクションで構成されています。

チュートリアルを始める前に

現在 ArcGIS Server をインストールしただけの状態であれば、ArcMap でサーバに接続してサービスを公開する前に、いくつかの準備作業が必要です。

マップの作成

マップをキャッシュするとき、サーバは指定した一連の縮尺でマップを描画します。マップを一度描画したら、キャッシュを再作成するか更新しない限り、その表示方法を変更することはできません。これには 2 つの重要な意味があります。

このチュートリアルでは、組織で ArcGIS Online / Bing Maps / Google マップ タイル スキーマが使用されていると想定します。次の手順に従って作業を開始します。

座標系の指定

このマップを設計するときには、ArcGIS Online、Google マップ、および Bing Maps と同じ WGS 1984 Web メルカトル(球体補正)座標系を使用するためのデータ フレームを設定します。

手順:
  1. ArcMap を起動して、新しい空のマップ ドキュメントを開きます。
  2. ArcMap のコンテンツ ウィンドウで、データ フレーム名(デフォルトは [レイヤ])を右クリックし、[プロパティ] を選択します。
  3. [座標系] タブをクリックします。
  4. [投影座標系][世界範囲の座標系(WGS 1984)][WGS 1984 Web メルカトル(球体補正)] の順にクリックします。
  5. [OK] をクリックします。
注意注意:

上記の手順は実際には不要です。ユーザが ArcGIS Online、Bing Maps、または Google マップのタイル スキーマでマップ キャッシュを作成しようとしていることが ArcGIS で検出されると、データはリアルタイムで WGS 1984 Web メルカトル(球体補正)に再投影されるからです。ここでは、この座標系を念頭においてマップを設計できるように、便宜上手順を説明しています。

ArcGIS Online、Bing Maps、および Google マップと同じ縮尺を使用するための ArcMap の設定

組織で使用するタイル スキーマは ArcGIS Online、Google マップ、および Bing Maps と同じであるため、マップの設計はこれらの縮尺のみで行います次のようにすると、縮尺を ArcMap の縮尺のドロップダウン リストに読み込むことができます。

手順:
  1. [標準] ツールバーで、縮尺のドロップダウン リストをクリックして [このリストをカスタマイズ] を選択します。
  2. [縮尺設定] ウィンドウで、[読み込み] をクリックして、[ArcGIS Online / Bing Maps / Google マップ] を選択します。
  3. [ズーム時にこれらの縮尺のみ表示] チェックボックスをオンにします。これにより、レイヤとフィーチャクラスは ArcGIS Online、Bing Maps、および Google マップの縮尺間隔のみで表示されるようになります。このオプションは、これらの縮尺でキャッシュされるマップを作成するときに特に有効です。
  4. [OK] をクリックして、変更内容を適用します。これで、これらの一般的な Web マッピング サービスによって使用される縮尺セットを表示し、ドロップダウン リストを使ってそれらを簡単に切り替えることができます。

マップの設計

ここからが本当のマップ設計作業です。マップをキャッシュする利点の 1 つは、設計段階において、パフォーマンスへの影響を心配せずに、すべてのカートグラフィック ツールを自由に使用できることです。キャッシュを一度作成したら、キャッシュを再作成または更新しない限りは変更することができなくなるため、時間をかけて、適切に表示されるマップを設計するようにしてください。キャッシュのユーザも、サーバ上に格納されたマップの既存のイメージを表示しているだけなので、シンボルを変更することができません。

ArcGIS Online、Bing Maps、および Google マップのタイル スキーマに合わせてマップを設計しているため、縮尺間隔ごとにマップを設計することをお勧めします。これは、ラスタ データの場合は簡単です。縮尺を変更すると ArcMap がデータのリサンプリングを行うからです。これに対し、ベクタ データは各縮尺で同じサイズのポイントとラインでシンボル表示されるため、マップが煩雑になりすぎたり、まばらになりすぎたりしないよう、もう少し作業を行う必要があります。次に、マップにベクタ データが含まれている場合に使用できる設計手順を示します。

手順:
  1. ArcMap で、データセットを追加して最小の縮尺まで縮小します。必要に応じて、投影の問題を修正します。正しくキャッシュするためには、すべてのデータセットで WGS 1984 Web メルカトル(球体補正)投影を使用する必要があります。
  2. この縮尺に合わせてレイヤのシンボルとラベルを設定します。
    ヒントヒント:

    この縮尺で表示されるフィーチャを少なくするために、フィルタ設定を定義することを検討してください。たとえば、市区町村レイヤがある場合は、人口が 30 万人以上の市区町村だけを表示するフィルタを設定できます。

  3. 1 段階上の縮尺に拡大し、この縮尺に合わせてレイヤのシンボルとラベルを設定します。
    ヒントヒント:

    別の縮尺ですでにシンボル表示したレイヤのシンボル、ラベル、またはフィルタ設定を変更したい場合は、マップにレイヤのコピーをもう 1 つ追加します。そのためには、ArcMap のコンテンツ ウィンドウでレイヤを右クリックし、[コピー] をクリックします。次に、データ フレーム名を右クリックし、[レイヤの貼り付け] をクリックします。

  4. グループ レイヤを作成して、レイヤのコピーを管理します。縮尺ごとにグループ レイヤを 1 つ作成するのが最も簡単です。そうすると、個々のレイヤではなくグループに縮尺依存を設定するだけで済みます。縮尺を名前に含めることもできます。
  5. グループ レイヤごとに縮尺範囲を設定して、キャッシュされた縮尺ごとに 1 つだけ表示されるようにします。キャッシュ縮尺ごとの許容値で縮尺範囲を設定します。たとえば、グループ レイヤの 1 つが 1:577,791 でキャッシュされる場合、1:866,686 よりも縮小したり、1:433,343 よりも拡大したりした場合にのみレイヤが表示されるように設定できます。
  6. 縮尺リスト内のすべての縮尺が処理されるまで、次の縮尺にズームして適切にシンボル表示する作業を続けます。
  7. マップを保存します。これでマップを公開する準備が整いました。

マップ サービスの公開

続いて、ArcMap を使用してマップ ドキュメントを ArcGIS Server で公開する手順について説明します。この処理を実行する間に、マップ キャッシュのスキーマを定義し、マップ ドキュメントのパフォーマンスを解析します。公開の際にキャッシュを作成するように指定します。次の手順に従って作業を開始します。

手順:
  1. ArcMap でマップ ドキュメントを開き、メイン メニューで [ファイル] [共有] [サービス] の順に選択します。
  2. [サービスとして共有] ウィンドウで、[サービスを公開] を選択します。[次へ] をクリックします。
  3. [サービスを公開] ダイアログ ボックスで、[ArcGIS Server に接続] ArcGIS Server の追加 をクリックして、サーバへの新しい接続を作成します。
  4. [ArcGIS Server サーバの追加] ウィンドウで、[GIS サービスを公開する] を選択します。[次へ] をクリックします。
  5. [サーバの URL] に、接続する ArcGIS Server サイトの URL を入力します。たとえば、「http://myserver:6080/arcgis」と入力します。
  6. [サーバ タイプ] ドロップダウン リストから、[ArcGIS Server] を選択します。
  7. 公開プロセス中に、サービス定義ファイルが作成されローカルのディスクに一時的に保存されます。公開プロセスが完了すると、サービス定義がサーバにアップロードされ、ローカル ファイルは削除されます。このチュートリアルでは、デフォルトのステージング フォルダをそのまま使用します。
  8. ArcGIS Server で公開者以上の権限を持つ [ユーザ名][パスワード] を入力します。セキュリティのためにユーザとロールを設定していない場合は、1 つの選択肢として、サイトの作成時に定義したプライマリ サイトの管理者アカウントを使用します。入力したユーザ名とパスワードを保存するには、チェックボックスをオンのままにします。その後 [完了] をクリックします。
  9. 必要に応じて、[サービスを公開] ウィンドウでサービスの新しい名前を入力します。[次へ] をクリックします。
  10. デフォルトでは、ArcGIS Server のルート フォルダ(root)にサービスが公開されます。サービスはルート フォルダ以下のサブディレクトリに整理することができます。サービスを公開するフォルダを選択するか、サービスを格納する新しいフォルダを作成します。[続行] をクリックします。
  11. [サービス エディタ] が表示されます。[サービス エディタ] を使用して、キャッシュされたマップ サービスでユーザが実行できる操作の選択、キャッシュ スキーマの定義、およびサーバがサービスを公開する方法の調整を行います。[キャッシュ] タブをクリックします。
  12. [キャッシュ] タブで [キャッシュのタイルを使用] を選択し、キャッシュを使用してマップ サービスを描画するように設定します。
  13. [タイル スキーマ] ドロップダウン リストで、[ArcGIS Online / Bing Maps / Google マップ] を選択します。
  14. [推定キャッシュ サイズ] を調べます。次に、[推定キャッシュ サイズ] が 50 MB 未満になるまで [詳細レベル] バーの [最大縮尺レベル] スライダを低く(左に移動)します。これにより、このチュートリアルに適切なテスト用のキャッシュ サイズになります。
  15. このチュートリアルでは、他のすべてのデフォルト設定をそのまま使用します。使用するデフォルトの 1 つが、サービスの公開時にキャッシュを自動的に作成することであることに注意してください。これよりも大きなキャッシュについては、別の機会(夜間や週末など)に手動で作成することをお勧めします。
    ヒントヒント:

    運用キャッシュの作成時には、この他にも調べてチューニングする必要のあるキャッシュ設定が数多くあります。[サービス エディタ] を使用してマップ キャッシュ プロパティを選択する方法については、「使用可能なマップ キャッシュ プロパティ」をご参照ください。

  16. [分析] 統計情報の更新 をクリックします。マップ ドキュメントをサーバに公開できるかどうかが検証されます。
    ヒントヒント:

    マップ サービスを構成するときに表示領域を広くするには、[サービス エディタ] の上部にある [折りたたみ] 折りたたみ ボタンをクリックします。

  17. [準備] ウィンドウでエラー エラー を修正します。エラーの修正は、マップをサービスとして公開する前に行う必要があります。さらに必要であれば、警告メッセージと情報メッセージに従って問題を修正し、サービスのパフォーマンスと外観を改善します。これらの問題の解決の詳細については、「GIS リソースの解析」をご参照ください。
    注意注意:

    サーバが確実にデータを認識して使用できるように、フォルダとジオデータベースを ArcGIS Server サイトに登録することができます。以下の手順を続ける場合、未登録のフォルダまたはジオデータベースからマップ ドキュメントが参照するデータはすべて、公開時にサーバにコピーされます。これは、サーバがサービスで使用されているすべてのデータにアクセスできることを保証するための予防的な処置です。フォルダまたはジオデータベースを ArcGIS Server サイトに登録する手順については、「ArcGIS for Desktop を使用したデータの ArcGIS Server への登録」をご参照ください。

  18. 必要に応じて、[サービス エディタ][プレビュー] プレビュー をクリックします。Web 上でマップがどのように表示されるかを確認することができます。詳細については、「マップのプレビュー」をご参照ください。
  19. マップ ドキュメント内のエラーを修正したら、[公開] 公開 をクリックします。

マップ サービスの公開がすぐに開始されます。公開の完了後、サーバではキャッシュ タイルの作成が開始され、キャッシュが作成されるまで続行されます。

最大縮尺、サーバを構成するハードウェア、データの範囲などの要因によっては、キャッシュの生成に時間がかかることがあります。このチュートリアル用に地理的範囲の狭いシンプルなデータセットを選択すれば、キャッシュは 1 時間未満で完成するはずです。ジオプロセシング ステータス ウィンドウにキャッシュが完了した割合を示すプログレス バーが表示されます。

キャッシュのテスト

キャッシュが完成したら、Web アプリケーションでキャッシュをテストし、マップの表示および機能が正常であることを確認します。これは、タイルがアプリケーションによって認識され、正しく使用されることを確認する効果的な方法でもあります。

テストに使用する Web アプリケーションは単純なものでかまいません。マップ キャッシュのテストには、ArcGIS Server Services Directory を通して利用できる JavaScript ビューア アプリケーションを使用する方法が適しています。

手順:
  1. Web ブラウザで Services Directory に移動します。たとえば、「http://myserver:6080/arcgis/rest/services」にアクセスします。
  2. サービス リストで、マップ サービスをクリックします。マップ サービスには「(MapServer)」が付加されます。サービスがフォルダに存在する場合は、そのフォルダに移動してサービスを選択します。
  3. サービスの名前、サービスの説明、およびレイヤのリストを示すページが表示されます。[表示: ArcGIS JavaScript] をクリックします。
  4. ウィンドウにシンプルな JavaScript Web アプリケーションが表示されます。ズーム レベル スライダのレベルはキャッシュ内の縮尺に対応します。
  5. マップ上で画面移動を行い、別のレベルにズームします。マップを画面移動したりズームしたりすると、マップ タイルが非常にすばやく表示されることがわかります。最初にキャッシュを定義したときに設定した [最大縮尺レベル] を超えてズームしないでください。そのレベルよりも大きい縮尺のタイルは作成されていません。

トラブルシューティング

アプリケーションがキャッシュを使用していないようであれば、次の点を確認してください。

Mozilla Firefox を使って Web アプリケーションを表示する場合は、キャッシュ タイルが使用されているかどうかを簡単に確認できます。

手順:
  1. Web アプリケーション内を右クリックして、[ページの情報を表示] を選択します。
  2. [ページ情報] ウィンドウで、[メディア] ボタンをクリックします。
  3. リストに表示されたイメージを確認します。サーバのキャッシュ ディレクトリを参照する URL が表示されている場合は、キャッシュが使用されています。

参考トピック

9/15/2013