blog

AVCSオンライン地図サービス

本書は、AVCS オンラインサービスへ WMS リクエストを開始する方法を説明します。 AVCS オンラインサービスをウェブアプリケーションに統合するために使用します。 Web Map Service...

Jun 5, 2020 · 7 min. read
シェア

プレゼンテーション

このドキュメントでは、AVCS オンラインサービスへ WMS (Web Map Service) リクエストを開始する方法について説明します。

AVCSオンラインサービスをWebアプリケーションに統合するために使用します。

WMS

ウェブ地図サービスのリクエストは、地図出力を生成するために使用されます。

地図の表示内容は、WMSリクエストダイバーシティのパラメータを指定することで制御できます。

WMSリクエストとパラメータについての詳細は、リクエスト例のURLとともにこのドキュメントに記載されています。

GetCapabilitiesでマップ・トークンを取得

AVCSオンライン・サービスへの最初のリクエストは、UKHO(英国水路局)のB2B認証JWTを持つGetCapabilitiesリクエストでなければなりません。

AVCS オンラインサービスを使用するためのマップトークンが含まれています。

AVCSオンラインサービスのテスト環境は、プリプロダクション環境です。

Token <> UKHO REST B2Bサービスが生成する認証トークン
SERVICE WMS 要求されたサービスがWMSであることを示します。
リクエスト GetCapabilities サポートされている操作とパラメータ、利用可能なレイヤーのリストを含む、メタ情報の取得方法。
VERSION 1.3.0 WMS
ライセンスID フリートマネージャーライセンスID
userRef ABC321456 ディストリビューター固有のユーザー参照

https://.azure-.net/avcso-dev/AVCS/WMS/?service=wms&version=..0&request=GetCapabilities&token=<<Token>>&licenseId=73706&userRef=123412

注:すべてのリクエストには、以下のリクエストヘッダも含まれている必要があります。

Ocp-Apim-Subscription-Key=<<subscription key>>

GetCapabilitiesリクエストにより、ユーザーは最大30分間システムにアクセスできます。タイムアウト後、最初の要求で提供されたトークンは失効します。マップ トークンの更新が必要な場合は、更新のセクションを参照してください。

GenerateTokenによるマップトークンの更新

GetCapabilitiesリクエストによってシステムが認証されるとすぐに、すべてのサブリクエストをマップサービスに直接送信できます。生成されたマップトークンは 30 分間有効です。

マップトークンの更新では、アプリからログアウトしてログインし直す必要はなく、アプリはリクエストを送信できます。

このリクエストには以下のパラメータが必要です。

Token <> UKHO REST B2Bサービスが生成する認証トークン
ライセンスID フリートマネージャーライセンスID
userRef ABC321456 ディストリビューター固有のユーザー参照

このリクエストはマップトークンを返します。マップトークンは、マップサービスへのすべてのサブリクエストによって運ばれる必要があります。

UKHO REST B2Bが生成するトークンと混同しないようご注意ください。注意: すべてのリクエストには、以下のリクエストヘッダも含める必要があります。

Ocp-Apim-Subscription-Key=<<subscription key>>

リクエスト例

https://.azure-.net/avcso-dev/tokens/generateToken?LicenseID=73706&UserRef=123456&Token=<<Token>>

成功した回答の例

{
 "token": "cui_FGKST19-IJ1W_M-lq7UBZSP_hQjt21THZ4FsQDJOc.",
 "expiration": "2019-02-06T14:32:07.088Z"
}

エラー応答の例:

{
 "correlationId": "05937d60-3e14-4980-bd26-29c70e79ac73",
 "errors": [
 {
 "source": "generateToken",
 "description": "Forbidden"
 }
 ]
}

地図出力の生成

WMS 要求は、要求で指定されたパラメータに基づいて地図出力を生成するために使用されます。以下のセクションでは、AVCS オンラインソリューションで適用される標準 WMS パラメーターと追加表示パラメーターの概要を説明します。

標準 WMS GetMap パラメータを使用

以下は、すべての GetMap 要求に使用できる標準 OGC GetMap 要求パラメータです。これらのパラメータを使用すると、デフォルトの IHO S-52 標準に基づくマップが表示されます。

標準パラメータは以下の通り:

Token <> UKHO REST B2Bサービスが生成する認証トークン
ライセンスID フリートマネージャーライセンスID
userRef ABC321456 ディストリビューター固有のユーザー参照
Token <<token>> WMSサービスが使用されていることを示します。
リクエスト 73706 GetMap リクエストであることを指定します。
フォーマット image/png 出力イメージのフォーマット
TRANSPARENT TRUE 背景色を透明に設定
VERSION 1.3.0 WMS
licenseId 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 表示するレイヤーのリスト、または指定されていない場合はすべてのレイヤーを選択します。
WIDTH 0010 出力イメージ幅
HEIGHT 0010 出力イメージの高さ
ちゅうかりょうりてんしょうこうぐん EPSG:5837 スペース基準
BBOX -4199759.866962299,4999896.148476938, 3025679.5427769204,9055339.121174172 ボックス座標

最適なタイルサイズ

APIによっては、マップのサイズが可視領域内で変化した場合に、最適なタイルサイズを動的に計算することができません。

このような場合、屋根板のサイズは1100をお勧めします。

これにより、クライアントのレスポンスタイムとWMSサービスに送信されるリクエスト数のバランスが最もよくなります。

基本パラメータに加えて、以下のパラメータは必須です。 WIDTH,HEIGHT,BBOXパラメータは、Use Tile Sizeパラメータの下では必須ではないことに注意してください。

tileSize 0110 グリッド内のタイルの幅と高さ

リクエスト例

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&tileSize=1100&CRS=EPSG:3857&UserId=<<UserId>>&userRef=ABC123456

LAYERS

LAYERSパラメータは標準的なWMSリクエストパラメータで、カンマで区切られたリストのセットで、クライアントが最終的に計算された図面にレイヤーを表示するかどうか、またどのような順序で表示するかを制御することができます。

AVCSオンラインでは、WMSレイヤーとViewOverGroupsは同じコンセプトで、WMS LAYERSパラメータを使用することで、クライアントはS-52標準に基づいてビューグループスイッチを制御することができます。

LAYERS パラメータが指定されない場合、デフォルトの動作、つまりすべてのレイヤーはデフォルトの順序に基づいて表示されます。

レイヤーを指定する順番は、レイヤーがイメージ上でレンダリングされる順番と逆になることに注意する必要があります。

LAYERSパラメータの値は以下の通り:

例-すべてのレイヤー/ビューグループを表示します:

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&LAYERS=21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=-.85052648446,.126722074,-.22199085026,.755257708&UserId=<<UserId>>&userRef=ABC123456

例-海底レイヤー/ビューグループのみを表示します:

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&LAYERS=16&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=-.85052648446,.126722074,-.22199085026,.755257708&UserId=<<UserId>>&userRef=ABC123456

例 - 基線、スポット測深、深度コンターレイヤー/ビューグループの表示

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&LAYERS=15,11,0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=-.85052648446,.126722074,-.22199085026,.755257708&UserId=<<UserId>>&userRef=ABC123456

標準の WMS GetFeatureInfo パラメータを使用します。

以下は、すべての標準 WMS GetFeatureInfo 要求で使用できるパラメータです。WMS GetFeatureInfo 要求を使用すると、指定したポイントのプロパティ情報を取得できます。

WMS GetFeatureInfoリクエストの標準パラメータは以下のとおりです:

0 <> UKHO REST B2Bサービスが生成する認証トークン
ライセンスID フリートマネージャーライセンスID
userRef ABC321456 ディストリビューター固有のユーザー参照
Token <<token>> WMSサービスが使用されていることを示します。
リクエスト GetFeatureInfo GetFeatureInfo リクエストであることを指定します。
フォーマット image/png 出力イメージのフォーマット
TRANSPARENT TRUE 背景色を透明に設定
VERSION 1.3.0 WMS
licenseId 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 表示するレイヤーのリスト、または指定されていない場合はすべてのレイヤーを選択します。
WIDTH 0010 出力イメージ幅
HEIGHT 0010 出力イメージの高さ
ちゅうかりょうりてんしょうこうぐん EPSG:5837 スペース基準
BBOX -4199759.866962299,4999896.148476938, 3025679.5427769204,9055339.121174172 ボックス座標
info_format 0110 返り値の形式は、text/html、text/xml、またはapplication/jsonです。
クエリレイヤ 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 情報を取得する必要があるレイヤー。
i 315 出力イメージ幅
j 632 出力イメージの高さ

戻り値がJSONの場合、もう一方のパラメータも&f=pjsonにする必要があります。

注: GetFeatureInfoリクエストは、特定のマップイメージに基づいています。したがって、WIDTH、HEIGHT、BBOX、CRS、および LAYERS パラメータは、ルックアップ ポイントの位置を計算するために使用されます。

例 - すべてのレイヤーを照会します:

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?SERVICE=WMS&REQUEST=GetFeatureInfo&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=-.58774060296,.143408402,-.25917374791,.471975257&info_format=text/html&LAYERS=20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0&query_layers=21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0&i=513&j=236&Userid=<<UserId>>&token=<<token>>

注意:このエンドポイントでは、アクセス可能なイメージファイルを使用する必要があります。

AVCS オンライン WMS 固有パラメータの使用

このセクションでは、さまざまなWMSパラメータの概要を説明します。

ForceCharts WMS

Forced Map パラメータは、AVCS Online の表示優先度を指定します。

このパラメータが指定されていない場合、デフォルトで最近公開されたチャートが表示されます。

値の例を以下に示します:

注:このパラメータは、GetMap および GetFeatureInfo 要求で使用できます。

Display_params WMS

表示パラメータは、コントロールの出力スタイルを指定するために使用されます。表示パラメータはJSONで定義します。パラメータの一覧は2.3.4を参照してください。

DisplayCategory 表示パラメーター

このパラメータは、表示区分を指定するために使用します。表示分類は IHO S-57 のルックアップテーブルで定義され、クライアントはそこで定義された機能グループのオンとオフを切り替えることができます。

分類パラメータの値は以下のように表示されます。

注:これらの値は、カンマ区切りで組み合わせることができます。

例-DisplayBase。

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=.37076169756,.396331931,.3990467708,.424617005&UserId=<<UserId>>&Display_params={"ECDISParameters":{"version":"..1","DynamicParameters":{"Parameter":[{"name":"DisplayCategory","value":"1"}]}}}&userRef=ABC123456

例-標準。

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=.37076169756,.396331931,.3990467708,.424617005&UserId=<<UserId>>&Display_params={"ECDISParameters":{"version":"..1","DynamicParameters":{"Parameter":[{"name":"DisplayCategory","value":"2"}]}}}&userRef=ABC123456

例-その他

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=.37076169756,.396331931,.3990467708,.424617005&UserId=<<UserId>>&Display_params={"ECDISParameters":{"version":"..1","DynamicParameters":{"Parameter":[{"name":"DisplayCategory","value":"4"}]}}}&userRef=ABC123456

組み合わせ例。

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?token=<<token>>&SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=.37076169756,.396331931,.3990467708,.424617005&UserId=<<UserId>>&Display_params={"ECDISParameters":{"version":"..1","DynamicParameters":{"Parameter":[{"name":"DisplayCategory","value":"1,2"}]}}}&userRef=ABC123456

SafetyContour表示パラメーター

Safety Line パラメータを使用して、安全ラインの深さを設定します。安全ラインパラメータの値は以下の通りです。

0 安全ラインの深さ0メートル
10 安全ラインの深さ10メートル
30 安全ラインの深さ30メートル
40 安全ラインの深さ40メートル

例 - 安全ラインの深さ = 0メートル。

https://avcs-...uk/server/rest/services/AVCS/MapServer/exts/MaritimeChartService/WMSServer?SERVICE=WMS&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=..0&WIDTH=1000&HEIGHT=1000&CRS=EPSG:3857&BBOX=-.7014349383,.136560182,-.34981570172,.95858042&Display_params={"ECDISParameters":{"version":"..1","DynamicParameters":{"Parameter":[{"name":"LabelContours","value":2},{"name":"LabelSafetyContours","value":2},{"name":"SafetyContour","value":0}]}}}&UserId=<<UserId>>&userRef=ABC123456&token=<<token>>
Read next

JVM 5-ヒープとガベージ・コレクション・アルゴリズム

1. ヒープ ほとんどのアプリケーションにとって、JavaヒープはJava仮想マシンによって管理されるメモリの最大の塊です。Javaヒープは、すべてのスレッドによって共有されるメモリ領域で、仮想マシンの起動時に作成されます。このメモリー領域の唯一の目的は、オブジェクト・インスタンスを保持することであり、ほとんどすべてのオブジェクト・インスタンスがここにメモリーを割り当てられます。 ヒープは、ごみ収集器によって管理される主要な領域です...

Jun 5, 2020 · 7 min read