2.9 Oracle Maps

Oracle Mapsは、Webベースの高性能な対話型マッピング・アプリケーションを開発するための一連のテクノロジの名前です。これは、サーバー側コンポーネントとクライアント側コンポーネントで構成されています。

2.9.1 Oracle Mapsの概要

Oracle Mapsは、次の主要なコンポーネントから構成されています。

  • マップ・タイル・サーバー。マップ画像タイルのリクエスト時に、事前生成されたマップ画像タイルをキャッシュして提供します。

  • マップ・サーバー。クライアントのマップ画像リクエスト時に、空間データからマッピング・クライアントのためにマップを生成します。

  • マップ・データ・サーバー。空間データ・プロバイダからマッピング・クライアントのために空間データをフェッチします。

  • AjaxベースのJavaScriptマッピング・クライアント。(Ajaxは、asynchronous JavaScript and XMLの頭字語です。)このクライアントは、マップの閲覧および操作に適した機能と、柔軟なApplication Program Interface (API)を提供します。

マップ・タイル・サーバー(マップ画像キャッシング・エンジン、「マップ・タイル・サーバー」を参照)は、Oracle Spatialマップ・ビジュアライゼーション・コンポーネントなどのWeb対応マップ・プロバイダによってレンダリングされたマップ画像タイルのフェッチとキャッシングを自動的に実行します。また、キャッシングされたマップ画像タイルをクライアント(Oracle MapsクライアントAPIを使用して開発されたWebアプリケーション)に提供します。提供されたクライアントはその後、複数のマップ画像タイルをまとめ、1つのシームレスで大きなマップを自動的に作成します。マップ画像タイルは、通常、事前に生成されキャッシュされるため、アプリケーション・ユーザーにはマップが高速に表示されます。

JavaScriptマッピング・クライアントは、ブラウザ側マップ表示エンジンであり、サーバーからマップ・コンテンツをフェッチしてクライアント・アプリケーションに表示します。次の機能があります:

  • マップ・ビジュアライゼーション・コンポーネント・サーバー、サード・パーティのマップ・サービス・プロバイダ、またはローカル・ディスク記憶域からマップ画像タイルをフェッチします

  • マップ・ビジュアライゼーション・コンポーネント・サーバー、サード・パーティの空間データ・プロバイダ、またはローカル・ディスク記憶域から空間データを取得して、それ自体がクライアント側で空間データをマップ画像にレンダリングします

  • マップのドラッグやクリックなど、マップ関連のカスタマイズ可能なユーザー操作コントロールをアプリケーションに提供します。

  • マップ・コンテンツとマップ・レイアウトのデザインをカスタマイズするための、その他の組込み機能とユーティリティを提供します。

JavaScriptマッピング・クライアントは、任意のWebアプリケーションまたはポータルと簡単に統合できます。

2.9.2 Oracle Mapsアプリケーションのアーキテクチャ

Oracle Mapsを使用して開発したWebマッピング・アプリケーションのアーキテクチャを、図2-15に示します。

図2-15 Oracle Mapsアプリケーションのアーキテクチャ

図2-15の説明が続きます
「図2-15 Oracle Mapsアプリケーションのアーキテクチャ」の説明

アプリケーションは、Oracle Mapsアーキテクチャと次のようにやり取りします(図2-15を参照)。

  • アプリケーションは、JavaScriptを使用して開発され、WebブラウザのJavaScriptエンジン内で動作します。

  • アプリケーションは、JavaScriptマップ・クライアントを起動してマップ・タイル・サーバーからマップ画像タイルをフェッチし、Webブラウザにマップを表示します。

  • アプリケーションは、JavaScriptマップ・クライアントを起動してサーバーから別の形式のマップ・サービス(WMSやWMTSなど)のマップ画像をフェッチし、マップ画像を表示します。

  • アプリケーションは、JavaScriptマップ・クライアントを起動してマップ・データ・サーバーから空間データをフェッチし、マップ画像を表示します。

  • JavaScriptマップ・クライアントが、アプリケーションに代わってユーザーとのマップ関連の対話を制御します。

  • マップ・ビジュアライゼーション・コンポーネント・サーバーがマップ画像リクエストを受信した場合、そのリクエストはサーバーがサポートする複数のタイプ(マップ・タイル・サーバーに向けられるマップ画像タイル・リクエスト、マップ・サーバーに向けられるマップ画像リクエスト、WMSサーバーに向けられるWMSマップ・リクエスト、WMTSサーバーに向けられるWMTSマップ画像タイル・リクエスト)のいずれかに含めることができます。それぞれのリクエストは、サーバーによって適切に処理されます。

    例1: マップ・タイル・サーバーは、マップ画像タイル・リクエストを受信すると、まず、リクエストされたタイルがキャッシング済であるかどうかをチェックします。すでにタイルがキャッシュされている場合は、キャッシュされているタイルがクライアントに返されます。タイルがキャッシュされていない場合、タイル・サーバーはタイルをキャッシュにフェッチして、そのタイルをクライアントに返します。タイルは、マップ・ビジュアライゼーション・コンポーネントのマップ・レンダリング・エンジンまたは外部Webマップ・サービス・プロバイダから直接フェッチできます。

    例2: マップ・タイル・リクエストのかわりに、マップ・サーバーへのマップ画像リクエストをサーバーが受信すると、マップ・サーバーは画像をレンダリングしてクライアントに返します。マップ・タイル・サーバーとは異なり、マップ・サーバーは、指定されたデータ範囲に応じてマップを生成し、指定されたディメンションでデータを画像にレンダリングしますが、マップ画像をキャッシュしません。

  • マップ・データ・サーバーはマップ・データ・リクエストを受信すると、空間データを取得して、マップ画像ではなく空間データをクライアントに返します。