マップの凡例のレンダリング
説明
凡例の JSON、見本サイズ、MIME タイプとしてマップの定義を指定して、マップの凡例一式を返します。凡例は、見本を表す行一式として返されます。これには、Base64 エンコード イメージ (または URL) とテキスト記述も含まれ、それらすべてで凡例全体が構成されます。マップ定義のレイヤごとに、0 個、1 個、または 2 個以上の凡例エントリが返されます。
inLineSwatch が false として渡されると、マップ定義の JSON を使用してユニーク キーが作成されます。このキーとパス (legends/{legendIndex}/rows/{rowindex}) がキャッシュに格納されます。このキーを getSwatch 操作で使用して、キャッシュから凡例を取得できます。
本体の JSON 表現は GeoJSON 形式です。GeoJSON の詳細については、geojson.org/geojson-spec.html を参照してください。
HTTP POST URL 形式
HTTP POST リクエストには次の形式を使用します。
HTTP POST: /maps/legends.json;
POST DATA: w=width;h=height;t=image type;
[r=resolution]?[inlineSwatch=boolean]&[ignoreLegendRowOverrideVisibility=boolean]
POST BODY: Content-Type:application/json {map definition, containing an object of a Map, layer array, or FeatureCollection}
パラメータ
以下のパラメータのタイプについては、リクエスト URL のデータ タイプを参照してください。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | はい | 凡例を取得する情報のタイプ (JSON など) |
w=width | Integer | はい | 各凡例見本の幅 (ピクセル単位) |
h=height | Integer | はい | 各凡例見本の高さ (ピクセル単位) |
t=image type | String | はい | 凡例見本として取得するイメージのタイプ (gif、png など) |
r=resolution | Integer | いいえ | 凡例見本の DPI 解像度を整数として指定します。DPI は、イメージの解像度を 1 インチあたりのドット数 (1 リニア インチ内に含めることのできるドットの数) で測定します。指定しない場合は、サーバーのデフォルトが使用されます。 |
inlineSwatch=boolean | Boolean | いいえ | 見本のイメージをデータで返すか、サーバー上のイメージの場所への URL で返すかを指定します。デフォルトでは、JSON レスポンスのすべての見本のイメージは、Base64 エンコード イメージとして返されます (inlineSwatch=true)。サーバー上のイメージの場所を示す見本イメージ URL を返すには、inlineSwatch=false を指定します。 |
ignoreLegendRowOverrideVisibility=boolean | Boolean | いいえ | 名前付きリソースの可視性設定 LegendRowOverride を無視して、すべての凡例を返します。 |
例
リポジトリ内の /Samples/NamedMaps ディレクトリにある MapWithLayer マップの凡例 (見本と情報) を JSON 形式で返します。見本は、32 x 16 の PNG 形式で、Base64 エンコード イメージとして返されます。マップは、JSON 本体で定義された単一のレイヤを使用して定義されます。
http://<hostname>:<port>/rest/Spatial/MappingService/maps/legends.json;w=16;h=32;t=png
Content-type: application/json
Authorization: <Basic or Spectrum Token>
{
'layers':[
{
'type':'NamedLayer',
'name':'/Samples/NamedLayers/UK_REGNS_Layer'
}
]
}
リクエストの本体には、(上記のような) レイヤ配列、Map、または Featurecollection を含めることができます。以下は、Map および FeatureCollection オブジェクトの例です。
{
"MapDescription": {
"version": "1.0",
"name": "Samples/NamedMaps/WorldMap",
"layers":[
{
"type":"NamedLayer",
"name":"/Samples/NamedLayers/USALayer"
}
]
}
}
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
},
{ "type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
]
},
"properties": {
"prop0": "value0",
"prop1": 0.0
}
},
{ "type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
[100.0, 1.0], [100.0, 0.0] ]
]
},
"properties": {
"prop0": "value0",
"prop1": {"this": "that"}
}
}
]
}
戻り値
JSON レスポンス オブジェクトで、マップのすべての凡例見本を表す String 値配列を返します。マップのレイヤごとに、0 個、1 個、または 2 個以上の凡例エントリが返されます。以下のレスポンスでは、inlineSwatch は true です。イメージは、デフォルトの Base64 エンコード イメージとして返されています。
{
"LegendResponse":[{"layerName":"UK REGNS",
"rows":[{
"description":"Region","swatch":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAy
CAYAAAAeP4ixAAAASUlEQVR42u3PQRUAAAREQf3TacRBCszu+wEm4tjqQAPJxQcBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBeQHZXgPRVfdw38uLQQAAAABJRU5ErkJggg=="
}],
"title":"UK REGNS",
"type":"CARTOGRAPHIC"}]
}
以下のレスポンスは、上と同じ見本ですが、生成された見本イメージへの URL が返されています (inlineSwatch パラメータを false に設定)。
{
"LegendResponse":[{"layerName":"UK REGNS",
rows":[{
"description":"Region","swatch":"http://<hostname>:<port>/rest/Spatial/MappingService/maps/
ae16d6e47ab63e2a840f8b1f205e12bb/legends/0/rows/0/swatch/50x50.png"}],
"title":"UK REGNS","type":"CARTOGRAPHIC"}]
}