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.1.5項を参照)。
管理リクエストについて、実行するタスクの種類に応じた次の各項で説明します。
各項のタイトルで、そのリクエストが管理リクエストか汎用リクエストかを判断できます。
データソースを追加、削除、再定義およびリストできます。(データソースの詳細およびその定義方法は、1.6.2.15項を参照してください。)
注意: このリクエストは通常、開発時やテスト時にデータソースを素早く動的に追加する場合(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)名前空間で定義されているデータソース名を識別します。
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です。
例5-1では、必要なすべての接続情報を指定して、mvdemo
というデータソースを追加します。
例5-1 詳細な接続情報の指定によるデータソースの追加
<?xml version="1.0" standalone="yes"?>
<non_map_request>
<add_data_source
name="mvdemo"
jdbc_host="elocation.example.com"
jdbc_port="1521"
jdbc_sid="orcl"
jdbc_user="scott"
jdbc_password="password"
jdbc_mode="thin"
number_of_mappers="5"/>
</non_map_request>
例5-2では、コンテナ・データソース名を指定して、mvdemo
というデータソースを追加します。
例5-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が対応するデータベース・スキーマを使用できなくなるのみで、そのスキーマの内容は実際には削除されません。
例5-3では、mvdemo
というデータソースを削除します。
例5-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>
要素と同じです。5.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.example.com" sid="orcl" port="1521" user="scott" mode="thin" numMappers="3"/> <map_data_source name="geomedia" host="geomedia.example.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 operation (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>
要素を使用して、ダウンロードするマップ・タイルが含まれたzipファイルを生成するようにサーバーにリクエストできます。リクエスト定義は、操作の属性をexport_tiles
に設定する以外は、クリア、プリフェッチまたはリフレッシュのリクエストに類似しています(5.2.3項を参照)。
次の例では、export_tiles
リクエストを送信します。
<?xml version="1.0" standalone="yes"?> <map_cache_admin_request> <tile_admin_task operation=" export_tiles " map_tile_layer="mvdemo.demo_map" zoom_levels="5,6,7,8,9,10,11,12,14,14,15" bounding_box="-71.6,42.35,-71.58,42.37"> </tile_admin_task> </map_cache_admin_request>
レスポンスには、zipファイルをダウンロードするためのURLが含まれています。zipファイルに含まれるマップ・タイルは、そのタイル層に対するサーバーのマップ・タイル・キャッシュと同じツリー構造になっています。
export_tiles
レスポンスのDTDは、5.2.3項「キャッシュのクリア、プリフェッチまたはリフレッシュ」の場合と類似していますが、1つの子要素<zipped_cache_url>
が追加されています。この要素の値は、zipファイルをダウンロードするためのURL文字列です。
次の例は、このリクエストに対するレスポンスを示しています。
<map_tile_server_response> <request_status>Submitted</request_status> <request_id>0</request_id> <zipped_cache_url> http://localhost:8088/mapviewer/images/zipcache/MVDEMO.DEMO_MAP_tozip1_6.zip </zipped_cache_url> <estimates tile_remaining="50" time_remaining="100" disk_space_required="238250"/> </map_tile_server_response> <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要素は、スタイル定義で指定されている説明を識別します。
<get_style_definition>
要素は、データソースのスタイル定義を返します。この要素には、次の定義が含まれます。
<!ELEMENT non_map_request get_style_definition> <!ELEMENT get_style_definition EMPTY> <!ATTLIST get_style_definition data_source CDATA #REQUIRED style CDATA #REQUIRED >
次の例は、mvdemo
データソースのM.AIRPORT
スタイルの定義を返します。
<?xml version="1.0" standalone="yes"?> <non_map_request> <get_style_definition data_source="mvdemo" style="M.AIRPORT"/> </non_map_request>
次の例に、このリクエストに対するレスポンスを示します。
<non_map_response> <style name="M.AIRPORT"> <svg width="1in" height="1in"> <desc/> <g class="marker" style="width:23;height:15;font-family:Dialog;font-size:12;font-fill:#FFFFFF"> <image x="0" y="0" width="1" height="1" markerType="gif" href="dummy.gif"/> </g> </svg> </style> </non_map_response>
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> 要素は、MapViewerをスタンドアロンのJava EEコンテナで実行しているか、起動しているプロセスが1つのみのクラスタ化されていないWebLogic Serverインスタンスで実行している場合にのみ使用します。それ以外の場合、加えた変更が1つのMapViewerインスタンスにのみ適用され、一貫性がそこなわれる可能性があります。 |
リクエストを次のように指定します。
<?xml version="1.0" standalone="yes"> <non_map_request> <edit_config_file/> </non_map_request>
リクエストを発行すると、MapViewer構成ファイルの現在のコンテンツを含むHTMLフォームが表示されます。フォームを編集してコンテンツを変更し、「保存」ボタンをクリックして変更をコミットします。ただし、MapViewerサーバーを再起動するまで、変更は有効になりません(5.10項を参照)。
通常、MapViewerサーバーを最も安全に再起動するには、含まれているインスタンスを再起動します。ただし、スタンドアロンの環境でMapViewerを実行している場合や、インスタンスがクラスタ化されておらず、起動しているJavaプロセスが1つのみの場合は、インスタンス全体を再起動しなくても、<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>