MapViewerの主な用途は、様々なマップ・リクエストの処理です。ただし、MapViewerは、そのXML APIを通じて様々な管理(非マップ)リクエストを受け入れます。たとえば、データソースを追加するリクエストの他、使用可能なテーマ、ベース・マップおよびタイル層をリストするリクエストなど、アプリケーションの開発に役立つ(汎用)リクエストがあります。すべてのMapViewer管理リクエストは、MapViewer管理(Admin)ページへのログインを必要とし、そのためのリンクがMapViewerのメイン・ページに表示されます。汎用リクエストはログインを必要とせず、アプリケーションから送信できます。この項では、各リクエストおよびそのレスポンスの書式について説明します。
XMLリクエストはすべて<non_map_request>または<map_cache_admin_request>要素に埋め込まれ、レスポンスはすべて<non_map_response>または<map_cache_admin_response>要素にそれぞれ埋め込まれます。ただし、どのリクエストでも例外が発生する場合があり、このときのレスポンスは<oms_error>または<mcs_error>要素になります(第3.5項を参照)。
管理リクエストについて、実行するタスクの種類に応じた次の各項で説明します。
各項のタイトルで、そのリクエストが管理リクエストか汎用リクエストかを判断できます。
データソースを追加、削除、再定義およびリストできます。(データソースの詳細およびその定義方法は、1.5.2.14項を参照してください。)
|
注意: このリクエストは通常、開発時やテスト時にデータソースを素早く動的に追加する場合(mapViewerConfig.xmlファイルの編集が必要な永続的データソースの作成を行わない場合)に使用します。本番用、またはMapViewerの提供する完全なデータソース機能を利用する場合は、常に永続的データソースを使用する必要があります。 |
<add_data_source>要素には、次の定義が含まれます。
<!ELEMENT non_map_request add_data_source>
<!ELEMENT add_data_source EMPTY>
<!ATTLIST add_data_source
name CDATA #REQUIRED
container_ds CDATA #IMPLIED
jdbc_tns_name CDATA #IMPLIED
jdbc_host CDATA #IMPLIED
jdbc_port CDATA #IMPLIED
jdbc_sid CDATA #IMPLIED
jdbc_user CDATA #IMPLIED
jdbc_password CDATA #IMPLIED
jdbc_mode (oci8 | thin) #IMPLIED
number_of_mappers INTEGER #REQUIRED
>
name属性は、データソース名を識別します。この名前は、MapViewerデータソース間で一意である必要があります。(データソース名は、大/小文字が区別されません。)
コンテナ・データソース名、ネット・サービス名(TNS名)または必要なすべての接続情報を指定する必要があります。つまり、次のうち1つのみの指定が必要です。
container_ds
jdbc_tns_name
jdbc_host、jdbc_port、jdbc_sid、jdbc_mode、jdbc_userおよびjdbc_password
container_ds属性は、Java EEコンテナのJava Naming and Directory Interface (JNDI)名前空間で定義されているデータソース名を識別します。OC4Jの場合、data-source.xmlファイルで定義されたデータソースのejb-location属性です。
jdbc_tns_name属性では、tnsnames.oraファイルで定義されているネット・サービス名を識別します。
jdbc_host属性は、データベース・ホスト・システム名を識別します。
jdbc_port属性は、TNSリスナー・ポート番号を識別します。
jdbc_sid属性は、データベースのSIDを識別します。
jdbc_user属性は、(map)に接続するユーザーを識別します。
jdbc_password属性は、jdbc_user属性で指定されているユーザーのパスワードを識別します。MapViewerによってこのパスワード文字列が変更されることはありません。大文字または小文字の変換も行われません。データベースで大/小文字を区別したパスワードが使用される場合は、指定したパスワードがデータベースのパスワードと完全に一致する必要があります。
jdbc_mode属性は、JDBC接続モード(thinまたはoci8)を識別します。oci8を指定した場合、MapViewerが動作する中間層にOracle Clientがインストールされている必要があります。すべてのデータソースにthinが使用される場合、Oracle Clientは必要ありません。
number_of_mappers属性は、該当するデータソースについて作成されるマップ・レンダラの数(つまり、MapViewerが同時に処理できるリクエスト数)を識別します。未処理のマップ・リクエストはキューに入れられ、最終的には処理されます。たとえば、この値が3の場合、MapViewerでは最大3つのマップ・リクエストを同時に処理できます。3つのリクエストの処理中に送信された4つ目のマップ・リクエストは、MapViewerが現在のリクエストのいずれかの処理を完了するまで待機します。単一データソースの最大mapper数は64です。
例7-1では、必要なすべての接続情報を指定して、mvdemoというデータソースを追加します。
例7-1 詳細な接続情報の指定によるデータソースの追加
<?xml version="1.0" standalone="yes"?>
<non_map_request>
<add_data_source
name="mvdemo"
jdbc_host="elocation.us.oracle.com"
jdbc_port="1521"
jdbc_sid="orcl"
jdbc_user="scott"
jdbc_password="password"
jdbc_mode="thin"
number_of_mappers="5"/>
</non_map_request>
例7-2では、コンテナ・データソース名を指定して、mvdemoというデータソースを追加します。
例7-2 コンテナ・データソースの指定によるデータソースの追加
<?xml version="1.0" standalone="yes"?>
<non_map_request>
<add_data_source
name="mvdemo"
container_ds="jdbc/OracleDS"
number_of_mappers="5"/>
</non_map_request>
add_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response add_data_source> <!ELEMENT add_data_source EMPTY> <!ATTLIST add_data_source succeed (true | false) #REQUIRED comment CDATA #IMPLIED >
リクエストが成功しなかった場合にのみcomment属性が表示され、この場合は理由がcomment属性に含まれます。次の例のsucceed="true"は、ユーザー・リクエストがサーバーに到着し、妥当性に関して例外が発生することなく処理されたことを示します。これは、リクエストに含まれるユーザーの意図したアクションがMapViewerサーバーで実際に実行されたかどうかを示すものではありません。この例では、comment属性の表示によりリクエストが失敗したことがわかり、comment属性に関連付けられた文字列("data source already exists")によって失敗の理由がわかります。
<?xml version="1.0" ?>
<non_map_response>
<add_data_source succeed="true" comment="data source already exists"/>
</non_map_response>
<remove_data_source>要素は、永続的データソースの削除や、データソースの動的な追加に使用できます。この要素には、次の定義が含まれます。
<!ELEMENT non_map_request remove_data_source> <!ELEMENT remove_data_source EMPTY> <!ATTLIST remove_data_source data_source CDATA #REQUIRED jdbc_password CDATA #REQUIRED >
data_source属性は、削除されるデータソースの名前を識別します。
jdbc_password属性は、データソース内のデータベース・ユーザーのログイン・パスワードを識別します。jdbc_passwordはセキュリティ上の理由(MapViewerからデータソースを誤って削除してしまうのを防ぐため)から必須とされています。
データソースを削除した場合、MapViewerが対応するデータベース・スキーマを使用できなくなるのみで、そのスキーマの内容は実際には削除されません。
例7-3では、mvdemoというデータソースを削除します。
例7-3 データソースの削除
<?xml version="1.0" standalone="yes"?>
<non_map_request>
<remove_data_source data_source="mvdemo" jdbc_password="password"/>
</non_map_request>
remove_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response remove_data_source> <!ELEMENT remove_data_source EMPTY> <!ATTLIST remove_data_source succeed (true | false) #REQUIRED >
例:
<?xml version="1.0" ?>
<non_map_response>
<remove_data_source succeed="true"/>
</non_map_response>
|
注意: 開発時またはテスト時にのみ使用するリクエストです。本番作業では使用しないでください。 |
便宜上、MapViewerではデータソースを再定義できます。具体的には、同じ名前のデータソースがすでに存在するとそのデータソースは削除され、新規の定義を使用して追加されます。その名前のデータソースが存在しない場合、新規データソースが追加されます。リクエストで指定したものと同じ名前、ホスト、ポート、SID、ユーザー名、パスワード、モードおよびmapper数のデータソースがすでに存在する場合、そのリクエストは無視されます。
<redefine_data_source>要素には、次の定義が含まれます。
<!ELEMENT non_map_request redefine_data_source> <!ELEMENT redefine_data_source EMPTY> <!ATTLIST redefine_data_source name CDATA #REQUIRED container_ds CDATA #IMPLIED jdbc_tns_name CDATA #IMPLIED jdbc_host CDATA #IMPLIED jdbc_port CDATA #IMPLIED jdbc_sid CDATA #IMPLIED jdbc_user CDATA #IMPLIED jdbc_password CDATA #IMPLIED jdbc_mode (oci8 | thin) #IMPLIED number_of_mappers INTEGER #REQUIRED >
属性およびその説明は、<add_data_source>要素と同じです。7.1.1項を参照してください。
redefine_data_sourceリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response redefine_data_source> <!ELEMENT redefine_data_source EMPTY> <!ATTLIST redefine_data_source succeed (true | false) #REQUIRED >
例:
<?xml version="1.0" ?> <non_map_response> <redefine_data_source succeed="true"/> </non_map_response>
<list_data_sources>要素は、現在実行中のMapViewerによって認識されている全データソースをリストします。これには、次の定義が含まれます。
<!ELEMENT non_map_request list_data_sources> <!ELEMENT list_data_sources EMPTY>
例:
<?xml version="1.0" standalone="yes"?> <non_map_request> <list_data_sources/> </non_map_request>
list_data_sourcesリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response map_data_source_list> <!ELEMENT map_data_source_list (map_data_source*) > <!ATTLIST map_data_source_list succeed (true|false) #REQUIRED > <!ELEMENT map_data_source EMPTY> <!ATTLIST map_data_source name CDATA #REQUIRED container_ds CDATA #IMPLIED host CDATA #IMPLIED sid CDATA #IMPLIED port CDATA #IMPLIED user CDATA #IMPLIED mode CDATA #IMPLIED numMappers CDATA #REQUIRED >
各データソースについて次の情報が返されます。
リクエストを発行するユーザーがMapViewer管理者としてログインしている場合、データベース・ユーザーのパスワードを除くすべてのデータソース情報が返されます。
リクエストを発行するユーザーがMapViewer管理者としてログインしていない場合、データソース名のみが返されます。
次の例は、リクエストがMapViewer管理者によって発行された場合の、2つのデータソースに関する情報が含まれたレスポンスです。
<?xml version="1.0" ?>
<non_map_response>
<map_data_source_list succeed="true">
<map_data_source name="mvdemo" host="elocation.us.oracle.com"
sid="orcl" port="1521" user="scott" mode="thin" numMappers="3"/>
<map_data_source name="geomedia" host="geomedia.us.oracle.com"
sid="orcl" port="8160" user="scott" mode="oci8" numMappers="7"/>
</map_data_source_list>
</non_map_response>
次の例は、同じリクエストがMapViewer管理者以外のユーザーによって発行された場合のレスポンスです。
<?xml version="1.0" ?> <non_map_response> <map_data_source_list succeed="true"> <map_data_source name="mvdemo"/> <map_data_source name="geomedia"/> </map_data_source_list> </non_map_response>
<data_source_exists>要素は、指定したデータソースが存在するかどうかを確認できます。これには、次の定義が含まれます。
<!ELEMENT non_map_request data_source_exists> <!ELEMENT data_source_exists EMPTY> <!ATTLIST data_source_exists data_source CDATA #REQUIRED >
例:
<?xml version="1.0" standalone="yes"?> <non_map_request> <data_source_exists data_source="mvdemo"/> </non_map_request>
data_source_existsリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response data_source_exists> <!ELEMENT data_source_exists EMPTY> <!ATTLIST data_source_exists succeed (true | false) #REQUIRED exists (true | false) #REQUIRED >
succeed属性は、リクエストが正常に処理されたかどうかを示します。
exists属性は、データソースが存在するかどうかを示します。
例:
<?xml version="1.0" ?> <non_map_response> <data_source_exists succeed="true" exists="true"/> </non_map_response>
タイル層の管理リクエストはすべて、<map_cache_admin_request>要素に埋め込まれます。これらのレスポンスは<map_tile_server_response>要素に埋め込まれますが、<get_client_config>は例外であり、そのレスポンス・ドキュメントの形式は異なる場合があります。エラーが発生した場合、レスポンスは対応するエラー・メッセージを含む<mcs_error>要素を返します。
2つのタイル層管理リクエスト<get_client_config>と<get_cache_status>は非管理モードで送信でき、この場合、管理コンソールにログインする必要はありません。
タイル層の管理タスクは次のとおりです。
<get_client_config>要素は、指定したタイル層の構成をクライアント側から返します。これには、次の定義が含まれます。
<!ELEMENT map_cache_admin_request (get_client_config)> <!ELEMENT get_client_config EMPTY> <!ATTLIST get_client_config map_cache_names CDATA #REQUIRED format (JSON|XML|OLD_JS) #IMPLIED >
map_cache_names属性は、構成のリクエスト対象となるタイル層名をリストします。
format属性は、レスポンス内のドキュメント形式を指定します。
次の例では、1つのタイル層MVDEMO.DEMO_MAPの構成をXML形式で取得します。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <get_client_config map_cache_names="MVDEMO.DEMO_MAP" format="XML" /> />
レスポンスは次のようになります。
<map_tile_server_response>
<map_tile_layer_config>
<map_tile_layer name="DEMO_MAP" data_source="MVDEMO" format="PNG" transparent="false">
<coordinate_system srid="8307" type="GEODETIC" distConvFactor="0.0" minX="-180.0" minY="-90.0" maxX="180.0" maxY="90.0"/>
<zoom_levels>
<zoom_level level="0" name="" scale="1.0E7" tile_width="4.285714285714286" tile_height="4.285714285714286" tile_image_width="189" tile_image_height="189"/>
<zoom_level level="1" name="" scale="3000000.0" tile_width="1.0843373493975903" tile_height="0.9608052463016623" tile_image_width="158" tile_image_height="140"/>
</zoom_levels>
</map_tile_layer>
</map_tile_layer_config>
</map_tile_server_response>
<get_client_config>リクエストは非管理モードでも機能し、このリクエストはxml_request文字列を通じて送信できます。例:
http://localhost:7001/mapviewer/mcserver?xml_request=<map_cache_admin_request><get_client_config map_cache_names="MVDEMO.DEMO_MAP" format="XML" /></map_cache_admin_request>
<get_cache_status>要素は、サーバーにあるすべてのタイル層のステータスをリストします。これには、次の定義が含まれます。
<!ELEMENT map_cache_admin_request (get_cache_status)> <!ELEMENT get_cache_status EMPTY>
次の例では、サーバーにあるすべてのタイル層のステータスをリストします。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <get_cache_status/> </map_cache_admin_request>
get_cache_statusリクエストへのレスポンスに使用するDTDの形式は次のとおりです。
<!ELEMENT map_tile_server_response (tile_server_status)> <!ELEMENT tile_server_status (cache_instance*)> <!ELEMENT cache_instance EMPTY> <!ATTLIST cache_instance data_source CDATA #REQUIRED name CDATA #REQUIRED type (internal|external) #REQUIRED base_map CDATA #REQUIRED zoom_levels PCDATA #REQUIRED status (ready|not ready) #REQUIRED online (true|false) #REQUIRED >
name属性は、このデータソースに含まれるタイル層の名前を識別します。
type属性は、マップ・ソースが内部マップ・ソースまたは外部マップ・ソースのいずれであるかを示します。
zoom_levels属性は、このタイル層におけるズーム・レベルの合計を示します。
base_map属性は、タイプが内部マップ・ソースの場合に、このタイル層がマップ・タイルの生成に使用するベース・マップ名を指定します。
status属性は、タイル層の準備が完了しているかどうかを示します。
online属性は、タイル層がオンライン(true)であるかオフライン(false)であるかを示します。
次にget_cache_statusレスポンスの例を示します。
<map_tile_server_response>
<tile_server_status>
<cache_instance data_source="MVDEMO_PC" name="DEMO_MAP" type="internal" base_map="DEMO_MAP" zoom_levels="10" status="ready" online="true"/>
<cache_instance data_source="MVDEMO" name="WMTS" type="internal" base_map="WMTS" zoom_levels="15" status="ready" online="true"/>
</tile_server_status>
<map_tile_server_response>
<get_cache_status>リクエストは非管理モードでも機能し、このリクエストはxml_request文字列を通じて送信できます。例:
http://localhost:7001/mapviewer/mcserver?xml_request=<map_cache_admin_request><get_cache_status /></map_cache_admin_request>
<tile_admin_task>要素を使用すると、キャッシュされたタイルのクリア、キャッシュするタイルのフェッチ、またはタイルのリフレッシュ(つまり、既存のすべてのファイルの削除とタイルのフェッチ)をサーバーにリクエストできます。これらの目的で、次の定義が使用されます。
<!ELEMENT map_cache_admin_request (tile_admin_task)> <!ELEMENT tile_admin_task (schedule?)> <!ELEMENT schedule EMPTY> <!ATTLIST tile_admin_task operations (clear_tiles|fetch_tiles|refresh_tiles) #REQUIRED map_tile_layer CDATA #REQUIRED zoom_levels PCDATA #REQUIRED bounding_box PCDATA #REQUIRED > <!ATTLIST schedule start_time PCDATA #REQUIRED repeat_interval PCDATA #IMPLIED duration PCDATA #IMPLIED >
operation属性は、実行する操作(clear_tiles、fetch_tilesまたはrefresh_tiles)を識別します。
map_tile_layer属性は、タイル層名を示します。データソース名を接頭辞として指定し、その後にピリオド(.)、タイル層名の順に指定します。たとえば、mvdemo.demo_mapのようになります。
zoom_levels属性は、実行する操作のズーム・レベルのリストを指定します。
bounding_box属性は、操作の実行対象となる四角形の領域を定義します。
start_time属性は、スケジュール済タスクの開始時間を示します。
repeat_interval属性は、この操作の実行頻度を分単位で示します。値が0(ゼロ)の場合、操作は1回かぎりです。
duration属性は、操作の継続時間を分単位で示します。この属性が空であるか指定されていない場合、タスクは完了するまで実行されます。
次の例では、fetch_tilesリクエストを送信します。
<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
<tile_admin_task
operation="fetch_tiles"
map_tile_layer="mvdemo.demo_map"
zoom_levels="7,8"
bounding_box="-71.6,42.35,-71.58,42.37">
<schedule start_time="2013-03-20 9:00:00" repeat_interval="0" duration="" />
</tile_admin_task>
</map_cache_admin_request>
fetch_tilesレスポンスのDTDは次のとおりです。
<!ELEMENT map_tile_server_response (request_status, request_id, estimates)> <!ELEMENT request_status (#CDATA)> <!ELEMENT request_id (#CDATA)> <!ELEMENT estimates EMPTY> <!ATTLIST estimates tile_remaining CDATA #REQUIRED time_remaining CDATA #REQUIRED disk_space_required CDATA #REQUIRED >
tile_remaining属性は、フェッチする残りのタイル数を示します。
time_remaining属性は、残りのタイルのフェッチに必要な推定時間を秒単位で示します。
disk_space_required属性は、残りのタイルの格納に必要な推定記憶領域をバイト単位で示します。
例:
<map_tile_server_response> <request_status>Submitted</request_status> <request_id>62</request_id> <estimates tile_remaining="144" time_remaining="288" disk_space_required="990576"/> </map_tile_server_response>
<tile_admin_task>要素を使用すると、タスクの停止、再開または削除をサーバーにリクエストできます。これらの目的で、次の定義が使用されます。
<!ELEMENT map_cache_admin_request (tile_admin_task)> <!ELEMENT tile_admin_task EMPTY> <!ATTLIST tile_admin_task operations (stop_task|resume_task|remove_task) #REQUIRED task_id PCDATA #REQUIRED >
operation属性は、実行する操作(stop_task、resume_taskまたはremove_task)を識別します。
task_id属性は、実行する操作のタスク識別子を示します。
次の例では、タスクを停止するリクエストを送信します。
<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
<tile_admin_task
operation="stop_task"
task_id="12">
</tile_admin_task>
</map_cache_admin_request>
リクエストへのstop_taskレスポンスに使用するDTDは次のとおりです。
<!ELEMENT map_tile_server_response (#CDATA)>
例:
<map_tile_server_response>Succeeded.</map_tile_server_response>
<get_admin_request_status>要素は、以前に送信された管理リクエストのステータスを示します。これには、次の定義が含まれます。
<!ELEMENT map_cache_admin_request (get_admin_request_status)> <!ELEMENT get_admin_request_status EMPTY> <!ATTLIST get_admin_request_status data_source CDATA #REQUIRED map_tile_layer CDATA #REQUIRED >
次の例では、指定したタイル層の管理リクエストのステータスを取得します。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <get_admin_request_status data_source="mvdemo" map_tile_layer="demo_map"/> </map_cache_admin_request>
get_admin_request_statusリクエストへのレスポンスに使用するDTDの形式は次のとおりです。
<!ELEMENT map_cache_admin_request (tile_admin_task)> <!ELEMENT tile_admin_task (bound, schedule?, task_progress)> <!ELEMENT bound (gml:Box)> <!ELEMENT schedule EMPTY> <!ELEMENT task_progress (zoom_level+)> <!ELEMENT zoom_level EMPTY> <!ATTLIST tile_admin_task id PCDATA #REQUIRED type (CLEAR, PREFETCH, REFRESH) #REQUIRED data_source CDATA #REQUIRED map_tile_layer CDATA #REQUIRED zoom_levels PCDATA #REQUIRED > <!ATTLIST schedule start_time PCDATA #REQUIRED repeat_interval PCDATA #IMPLIED duration PCDATA #IMPLIED cron_string CDATA #IMPLIED > <!ATTLIST zoom_level level PCDATA #REQUIRED total_tile_number PCDATA #REQUIRED processed_tile_number PCDATA #REQUIRED failed_tile_number PCDATA #REQUIRED tile_x PCDATA #REQUIRED tile_y PCDATA #REQUIRED >
level属性は、このタスクの現在のズーム・レベルを示します。
total_tile_number属性は、このタスクの合計タイル数を示します。
processed_tile_number属性は、すでに処理されたタイルの数を示します。
failed_tile_number属性は、操作内で失敗したタイルの数を示します。
tile_xおよびtile_y属性は、タイル・メッシュ・コード座標系における、最後に処理したタイルの座標(x, y)を示します。値が-1の場合、タスクは開始されていません。
例:
<tile_admin_task id="67" type="PREFETCH" data_source="MVDEMO" map_tile_layer="DEMO_MAP" zoom_levels="8,9">
<bound>
<gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="SDO:8307">
<gml:coordinates decimal="." cs="," ts=" ">
-71.60,42.35 -71.58,42.37
</gml:coordinates>
</gml:Box>
</bound>
<schedule repeat_interval="0" duration="0" start_time="2015-03-20 09:00:00" cron_string=""/>
<task_progress>
<zoom_level level="8" total_tile_number="144" processed_tile_number="0" failed_tile_number="0" tile_x="-1"tile_y="-1"/>
<zoom_level level="9" total_tile_number="1122" processed_tile_number="0" failed_tile_number="0" tile_x="-1"tile_y="-1"/>
</task_progress>
</tile_admin_task>
<tile_admin_task>要素を使用すると、キャッシュ・インスタンスの作成または再定義をタイル層サーバーにリクエストできます。これらの目的で、次の定義が使用されます。
<!ELEMENT map_cache_admin_request (create_cache_instance, redefine_cache_instance)> <!ELEMENT create_cache_instance (cache_instance)> <!ELEMENT redefine_cache_instance (cache_instance)> <!ELEMENT cache_instance (internal_map, cache_storage?|tile_storage?, coordinate_system, tile_image, zoom_levels)> <!ELEMENT internal_map_source EMPTY> <!ELEMENT cache_storage EMPTY> <!ELEMENT coordinate_system EMPTY> <!ELEMENT tile_image EMPTY> <!ELEMENT zoom_levels EMPTY> <!ATTLIST create_cache_instance data_source CDATA #REQUIRED > <!ATTLIST cache_instance name CDATA #REQUIRED image_format (PNG|GIF|JPG)”PNG” > <!ATTLIST internal_map_source base_map CDATA #REQUIRED > <!ATTLIST cache_storage root_path CDATA #IMPLIED > <!ATTLIST coordinate_system srid PCDATA #REQUIRED minX PCDATA #REQUIRED maxX PCDATA #REQUIRED minY PCDATA #REQUIRED maxY PCDATA #REQUIRED > <!ATTLIST tile_image width PCDATA #REQUIRED height PCDATA #REQUIRED > <!ATTLIST zoom_levels levels PCDATA #REQUIRED min_scale PCDATA #REQUIRED max_scale PCDATA #REQUIRED >
srid属性は、このタイル層の投影(座標系)を指定します。
minX、maxX、minYおよびmaxY属性は、指定した投影におけるこのタイル層のデータ範囲を指定します。
width属性およびheight属性は、イメージの幅および高さを指定します。
levels属性は、このタイル層のズーム・レベルを示す数値を指定します。
min_scaleおよびmax_scale属性は、スケール分母の最小値と最大値を指定します。ズーム0には、常に最大のスケール分母が割り当てられるため、タイルに含まれる地理的領域はより大きくなり、マップの詳細は大まかになります。
<remove_cache_instance>要素は、タイル層インスタンスをサーバーから削除します。これには、次の定義が含まれます。
<!ELEMENT map_cache_admin_request (remove_cache_instance)> <!ELEMENT remove_cache_instance EMPTY> <!ATTLIST remove_cache_instance map_cache_name CDATA #REQUIRED clean_disk (true|false) "false" remove_permanently (true|false) "false" >
clean_disk属性は、すでにキャッシュされているタイルを削除するかどうかを指定します。
remove_permanently属性は、タイル層をUSER_SDO_CACHED_MAPSビューから削除するかどうかを指定します。
次の例では、タイル層インスタンスをサーバーから削除します。
<?xml version="1.0" standalone="yes"?>
<map_cache_admin_request>
<remove_cache_instance
map_cache_name="mvdemo.demo_map"
clean_disk="true" remove_permanently="false"/>
remove_cache_instanceレスポンスのDTDは次のとおりです。
<!ELEMENT map_tile_server_response (#CDATA)>
例:
<map_tile_server_response>Succeeded.</map_tile_server_response>
<restart_cache_server>要素は、タイル層サーバーを再起動します。これには、次の定義が含まれます。
<!ELEMENT map_cache_admin_request (restart_cache_server)> <!ELEMENT restart_cache_server EMPTY>
次の例では、サーバーを再起動します。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <restart_cache_server /> </map_cache_admin_request>
<take_cache_offline>要素は、タイル層インスタンスをサーバーに対してオフラインにし、<bring_cache_online>要素は、オフラインのタイル層インスタンスをオンラインに戻します。DTD定義は次のとおりです。
<!ELEMENT map_cache_admin_request (take_cache_offline, bring_cache_online)> <!ELEMENT take_cache_offline EMPTY> <!ATTLIST take_cache_offline map_cache_name CDATA #REQUIRED > <!ATTLIST bring_cache_online map_cache_name CDATA #REQUIRED >
次の例では、タイル層インスタンスをオフラインにします。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <take_cache_offline map_cache_name="mvdemo.demo_map" /> </map_cache_admin_request>
<list_maps>要素は、指定したデータソース内の全ベース・マップをリストします。これには、次の定義が含まれます。
<!ELEMENT non_map_request list_maps> <!ELEMENT list_maps EMPTY> <!ATTLIST list_maps data_source CDATA #REQUIRED >
次の例では、mvdemoというデータソース内の全ベース・マップをリストします。
<?xml version="1.0" standalone="yes"?> <non_map_request> <list_maps data_source="mvdemo"/> </non_map_request>
list_mapsリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response map_list> <!ELEMENT map_list (map*) > <!ATTLIST map_list succeed (true | false) #REQUIRED > <!ATTLIST map name CDATA #REQUIRED >
succeed属性は、リクエストが正常に処理されたかどうかを示します。
name属性は、各マップを識別します。
例:
<?xml version="1.0" ?> <non_map_response> <map_list succeed="true"> <map name="DEMO_MAP"/> <map name="DENSITY_MAP"/> </map_list> </non_map_response>
<list_predefined_themes>要素は、指定のデータソースで定義されたすべてのテーマ、または指定したマップに対する指定のデータソースで定義されたすべてのテーマをリストします。
テーマに関連付けられたマップに関係なく、データソースで定義されたすべてのテーマをリクエストするためのDTDには、次の定義が含まれます。
<!ELEMENT non_map_request list_predefined_themes> <!ELEMENT list_predefined_themes EMPTY> <!ATTLIST list_predefined_themes data_source CDATA #REQUIRED >
次の例では、mvdemoというデータソースで定義された全テーマをリストします。
<?xml version="1.0" standalone="yes"?> <non_map_request> <list_predefined_themes data_source="mvdemo"/> </non_map_request>
データソースで定義され、特定のマップに関連付けられたすべてのテーマをリクエストするためのDTDには、次の定義が含まれます。
<!ELEMENT non_map_request list_predefined_themes> <!ELEMENT list_predefined_themes EMPTY> <!ATTLIST list_predefined_themes data_source CDATA #REQUIRED map CDATA #REQUIRED >
次の例では、tilsmenvというデータソースで定義され、QA_MAPというマップに関連付けられたすべてのテーマをリストします。
<?xml version="1.0" standalone="yes"?> <non_map_request> <list_predefined_themes data_source="tilsmenv" map="QA_MAP"/> </non_map_request>
list_predefined_themesリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response predefined_theme_list> <!ELEMENT predefined_theme_list (predefined_theme*) > <!ATTLIST predefined_theme_list succeed (true | false) #REQUIRED > <!ELEMENT predefined_theme EMPTY> <!ATTLIST predefined_theme name CDATA #REQUIRED >
succeed属性は、リクエストが正常に処理されたかどうかを示します。
name属性は、各テーマを識別します。
例:
<?xml version="1.0" ?> <non_map_response> <predefined_theme_list succeed="true"> <predefined_theme name="THEME_DEMO_CITIES"/> <predefined_theme name="THEME_DEMO_BIGCITIES"/> <predefined_theme name="THEME_DEMO_COUNTIES"/> <predefined_theme name="THEME_DEMO_COUNTY_POPDENSITY"/> <predefined_theme name="THEME_DEMO_HIGHWAYS"/> <predefined_theme name="THEME_DEMO_STATES"/> <predefined_theme name="THEME_DEMO_STATES_LINE"/> </predefined_theme_list> </non_map_response>
返されたリストにおける名前の順序は一定ではないため注意してください。
<list_styles>要素は、指定したデータソースに対して定義されたスタイルをリストします。これには、次の定義が含まれます。
<!ELEMENT non_map_request list_styles> <!ELEMENT list_styles EMPTY> <!ATTLIST list_styles data_source CDATA #REQUIRED style_type (COLOR|LINE|MARKER|AREA|TEXT|ADVANCED) #IMPLIED >
style_typeに値を指定した場合、そのタイプのスタイルのみがリストされます。スタイルのタイプには、COLOR、LINE、MARKER、AREA、TEXTおよびADVANCEDがあります。style_typeを指定しない場合は、すべてのタイプの全スタイルがリストされます。
次の例では、COLORタイプのスタイルのみをリストします。
<?xml version="1.0" standalone="yes"?> <non_map_request> <list_styles data_source="mvdemo" style_type="COLOR"/> </non_map_request>
list_stylesリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response style_list> <!ELEMENT style_list (style*) > <!ATTLIST style_list succeed (true | false) #REQUIRED > <!ELEMENT style EMPTY> <!ATTLIST style name CDATA #REQUIRED >
次の例は、COLORタイプのスタイルに関するリクエストへのレスポンスを示しています。
<?xml version="1.0" ?> <non_map_response> <style_list succeed="true"> <style name="SCOTT:C.BLACK"/> <style name="SCOTT:C.BLACK GRAY"/> <style name="SCOTT:C.BLUE"/> <style name="SCOTT:C.CRM_ADMIN_AREAS"/> <style name="SCOTT:C.CRM_AIRPORTS"/> </style_list> </non_map_response>
レスポンス内の各スタイル名の書式はOWNER:NAME(例: SCOTT:C.BLACK)で、OWNERはスタイルを所有するスキーマ・ユーザーです。
<list_theme_styles>要素は、事前定義済テーマで参照されるレンダリング・スタイルをすべてリストします。この要素は、テーマ用に独自の凡例を作成する場合に、そのテーマで実際に使用されているスタイルを確認する際に特に便利です。この要素には、次の定義が含まれます。
<!ELEMENT non_map_request list_theme_styles> <!ELEMENT list_theme_styles EMPTY> <!ATTLIST list_styles data_source CDATA #REQUIRED theme CDATA #REQUIRED >
次の例は、事前定義済テーマTHEME_DEMO_STATESで使用されているスタイルをリクエストします。
<non_map_request> <list_theme_styles data_source="mvdemo" theme="THEME_DEMO_STATES" /> </non_map_request>
次の例に、このリクエストに対するレスポンスを示します。
<non_map_response>
<theme_style name="C.US MAP YELLOW" type="COLOR" render="true" label="false"
highlight="false" description="Primary color for US maps."/>
<theme_style name="T.STATE NAME" type="TEXT" render="false" label="true"
highlight="false" description="name for states"/>
</non_map_response>
list_theme_stylesリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response (theme_style*)>
<!ELEMENT theme_style EMPTY>
<!ATTLIST theme_style
name CDATA #REQUIRED
type CDATA (COLOR|LINE|MARKER|AREA|TEXT|ADVANCED) #REQUIRED
render CDATA (true|false) #REQUIRED
label CDATA (true|false) #REQUIRED
highlight CDATA (true|false) #REQUIRED
description CDATA #IMPLIED
>
このDTDの内容は、次のとおりです。
name属性は、スタイル名を識別します。
type属性は、MapViewerのスタイル・タイプを識別します。
render属性は、そのスタイルがテーマによってレンダリング・スタイルとして使用されるかどうかを示します。
label属性は、そのスタイルがラベリング・スタイルとして使用されるかどうかを示します。
highlight属性は、そのスタイルがハイライト・スタイルとしてのみ使用されるかどうかを示します。
description要素は、スタイル定義で指定されている説明を識別します。
MapViewerでは2種類のメモリー内キャッシュが使用されます。
スタイル、テーマ、ベース・マップ定義といったマッピング・メタデータや、キャッシュ内のテーブルにあるSDO_GEOMETRY列のSRID値に対応するメタデータ・キャッシュ
事前定義済テーマ(マップの生成に使用されるジオメトリ・データおよび画像データ)に対応する空間データ・キャッシュ
これらのキャッシュを使用すると、キャッシュされた情報についてはMapViewerがデータベースにアクセスしないため、パフォーマンスが向上します。ただし、その情報がキャッシュに格納された後にデータベース内で変更された場合、MapViewerの表示に古い情報が反映されることがあります。
MapViewerを再起動せずに最新情報を使用するには、これらのキャッシュのいずれかまたは両方の内容を消去(無効化)します。キャッシュが消去された場合、次のMapViewerリクエストでは必要な情報がデータベースから取得され、適切なキャッシュに情報が格納されます。
ユーザーがデータソースのマップをリクエストすると、MapViewerではデータソースのスタイル、テーマおよびベース・マップ定義といったマッピング・メタデータや、テーブル内にあるSDO_GEOMETRY列のSRID値がキャッシュされます(テーマを最初にレンダリングする場合など)。これによって、MapViewerがマッピング・メタデータをフェッチする際に、データベースに不必要にアクセスすることを防止できます。ただし、Map Builderツールなどを使用してマッピング・メタデータを変更しても、MapViewerを再起動するまでは反映されません。
MapViewerを再起動せずに変更済の定義を使用するには、MapViewerに対し、指定のデータソースについてキャッシュされたすべてのマッピング・メタデータおよびSRID値を消去(つまり、キャッシュから削除)するようにリクエストできます。メタデータ・キャッシュを消去すると、MapViewerは必ずデータベースにアクセスして最新のマッピング・メタデータを取得します。
<clear_cache>要素は、MapViewerメタデータ・キャッシュを消去します。これには、次の定義が含まれます。
<!ELEMENT non_map_request clear_cache> <!ELEMENT clear_cache EMPTY> <!ATTLIST clear_cache data_source CDATA #REQUIRED >
data_source属性は、MapViewerメタデータ・キャッシュから削除されるメタデータを含むデータソースの名前を指定します。
次の例では、MapViewerメタデータ・キャッシュからデータソースmvdemoのメタデータを消去します。
<?xml version="1.0" standalone="yes"?> <non_map_request> <clear_cache data_source="mvdemo"/> </non_map_request>
clear_cacheリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response clear_cache> <!ELEMENT clear_cache EMPTY> <!ATTLIST clear_cache succeed (true | false) #REQUIRED >
例:
<?xml version="1.0" ?> <non_map_response> <clear_cache succeed="true"/> </non_map_response>
MapViewerでは、レンダリング用にデータベースからメモリーにデータをロードする際に、キャッシュしないように指定されている場合を除き、事前定義済テーマの空間データ(ジオメトリまたは地理参照画像)をキャッシュします。(MapViewerは動的テーマまたはJDBCテーマのデータはキャッシュしません。)したがって、事前定義済テーマが頻繁にアクセスされている場合は、データの大部分がキャッシュに格納されていると考えられます。ただし、テーマの空間データがデータベースで変更されている場合、その変更はマップ上に表示されません。これは、MapViewerが引き続きキャッシュのデータ・コピーを使用しているためです。MapViewerを再起動せずに変更済のテーマ・データを表示するには、まずそのテーマのキャッシュ・データを消去する必要があります。
<clear_theme_cache>要素は、事前定義済テーマのキャッシュ・データを消去します。これには、次の定義が含まれます。
<!ELEMENT non_map_request clear_theme_cache> <!ELEMENT clear_theme_cache EMPTY> <!ATTLIST clear_theme_cache data_source CDATA #REQUIRED theme CDATA #REQUIRED >
data_source属性は、データソースの名前を指定します。theme属性は、そのデータソース内の事前定義済テーマの名前を指定します。
次の例では、データソースmvdemo内のSTATESという事前定義済テーマのキャッシュされた空間データを消去します。
<?xml version="1.0" standalone="yes"?> <non_map_request> <clear_theme_cache data_source="mvdemo" theme="STATES"/> </non_map_request>
clear_theme_cacheリクエストに対するレスポンスのDTDは、次のような書式になります。
<!ELEMENT non_map_response clear_theme_cache> <!ELEMENT clear_theme_cache EMPTY> <!ATTLIST clear_theme_cache succeed (true | false) #REQUIRED >
例:
<?xml version="1.0" ?> <non_map_response> <clear_theme_cache succeed="true"/> </non_map_response>
<edit_config_file>要素を使用すると、MapViewer構成ファイル(mapViewerConfig.xml)を編集できます。これには、次の定義が含まれます。
<!ELEMENT non_map_request edit_config_file> <!ELEMENT edit_config_file EMPTY>
|
注意: <edit_config_file>要素は、スタンドアロンのOC4J環境または起動しているプロセスが1つのみのクラスタ化されていないOC4JインスタンスでMapViewerを実行している場合にのみ使用します。それ以外の場合、加えた変更が1つのMapViewerインスタンスにのみ適用され、一貫性がそこなわれる可能性があります。 |
リクエストを次のように指定します。
<?xml version="1.0" standalone="yes"> <non_map_request> <edit_config_file/> </non_map_request>
リクエストを発行すると、MapViewer構成ファイルの現在のコンテンツを含むHTMLフォームが表示されます。フォームを編集してコンテンツを変更し、「保存」ボタンをクリックして変更をコミットします。ただし、MapViewerサーバーを再起動するまで、変更は有効になりません(7.9項を参照)。
通常、MapViewerサーバーを最も安全に再起動するには、含まれているOC4Jインスタンスを再起動します。ただし、スタンドアロンのOC4J環境でMapViewerを実行している場合、またはOC4Jインスタンスがクラスタ化されておらず、起動しているJavaプロセスが1つのみの場合は、OC4Jインスタンス全体を再起動しなくても<restart>要素を使用して素早くMapViewerを再起動できます。<restart>要素には、次の定義が含まれます。
<!ELEMENT non_map_request edit_config_file> <!ELEMENT restart EMPTY>
リクエストを次のように指定します。
<?xml version="1.0" standalone="yes"> <non_map_request> <restart/> </non_map_request>