SearchLinkAttrs
指定した範囲(矩形または円)内にあるリンク内属性をすべて取得する。
空間検索により、特定エリア内の橋・高架、トンネル、踏切などのリンク内属性情報を効率的に取得できます。
本APIは利用方法により課金額が大きくなる可能性があります。
- 広域の空間検索 空間範囲を広く指定すると、数百件以上のリンクデータを取得する可能性があります。
- 地図連動の繰り返し取得 地図画面内のノードやリンクを地図の移動・ズーム操作のたびに描画をするような実装した場合、 これらの操作の度にAPIが再実行され大量のノード・リンクが取得される可能性があります。
詳細は課金額が大きくなる可能性のあるケースとAPIを参照してください。
リクエスト
| 項目 | 内容 |
|---|---|
| HTTPメソッド | POST および GET |
| エンドポイント | /API/Link/SearchLinkAttrs |
| 認証 | トークンベース認証(HTTPヘッダに Token-Key を設定) |
パラメータ
| id | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| max_links_count | integer | - | 取得最大数 | 未指定時はシステム設定値 |
| page_number | integer | - | 取得ページ番号 | 0:1件目から / 未指定時:0 |
| road_classification | integer | - | 道路区分 | road_classification を参照 |
| request_crs | string | - | リクエスト座標参照系 | 詳細は CRS を参照 |
| response_crs | string | - | レスポンス座標参照系 | 詳細は CRS を参照 |
| spatial_search_mode | integer | - | 空間検索モード | spatial_search_mode を参照 |
| point1_x | double | △ | 緯度(X座標) |
検索モード = 1 のとき、point1_x / point1_y および
point2_x / point2_y の 2 点による矩形検索。検索モード = 2 のとき、 point1_x / point1_y を中心点、tolerance を半径とする円検索。
|
| point1_y | double | △ | 経度(Y座標) | |
| point2_x | double | △ | 緯度(X座標) | |
| point2_y | double | △ | 経度(Y座標) | |
| tolerance | integer | - | 検索半径(m) | 円検索時に使用 |
| search_condition | string | - | 属性検索条件 | フィルター条件を参照 |
| sort_condition | string | - | ソート条件 | ソート条件を参照 |
| response_geodata | string | - | geo_data応答形式 | geojson/string または geojson/object |
必須欄の「△」は、指定する検索モード(spatial_search_mode)により必須となる項目を示します。
サンプルソースコード
以下は JavaScript を用いて、矩形範囲内のリンク内属性を検索する例です。 2点の座標を指定して、その範囲内にある橋・高架やトンネルなどの情報を取得します。
const url = "https://pf.drm.jp/API/Link/SearchLinkAttrs";
const token = "your_token";
// 矩形範囲を指定してリンク内属性を検索
const data = {
spatial_search_mode: 1, // 矩形検索
point1_x: 35.6812, // 左下の緯度
point1_y: 139.7671, // 左下の経度
point2_x: 35.6895, // 右上の緯度
point2_y: 139.7917, // 右上の経度
road_classification: 1, // 基本道路
max_links_count: 100, // 最大100件取得
response_geodata: "geojson/object"
};
async function searchLinkAttrs() {
try {
const payload = new URLSearchParams(data);
const res = await fetch(url, {
method: "POST",
headers: {
"Token-Key": token,
"Content-Type": "application/x-www-form-urlencoded"
},
body: payload.toString()
});
const json = await res.json();
console.log(JSON.stringify(json, null, 2));
// 取得したリンク内属性の件数を表示
if (json.status === 1) {
console.log(`総件数: ${json.total_count}`);
console.log(`取得件数: ${json.geo_data.features.length}`);
}
} catch (err) {
console.error(err);
}
}
searchLinkAttrs();
レスポンス
成功時、レスポンスボディには GeoJSON 形式でリンク内属性データが含まれます。
検索対象が見つからない場合は、status が 0 となります。
{
"status": 1,
"total_count": 150,
"response_crs": "EPSG:4326",
"geo_data": {
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4326"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[139.7671, 35.6812],
[139.7680, 35.6820]
]
},
"properties": {
"pid": "12345678",
"版番号": "01-001",
"属性延長": 150,
"リンク番号": "L001",
"属性種別コード": 2119,
"施設管理コード": 1001,
"属性名称(カナ)": "トウキョウバシ",
"属性名称(漢字)": "東京橋",
"正規化座標フラグ": 0,
"橋・高架区別コード": 1,
"車両通行規制コード": 2,
"表示レベル参考コード": 3
}
}
]
}
}
response_geodata パラメータで "geojson/string" を指定した場合、
geo_data は文字列として返されます。
"geojson/object" を指定した場合は、上記のようにJSONオブジェクトとして返されます。
レスポンス情報
| キー | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| status | integer | 〇 | 処理結果 | 詳細は status を参照 |
| total_count | integer | 〇 | 総件数 | 検索条件に一致する件数 |
| response_crs | string | 〇 | レスポンス座標参照系 | 詳細は CRS を参照 |
| geo_data | string/object | 〇 | 地物情報 | 検索結果の地物情報 |
geo_data 構造(GeoJSON形式)
| キー | 型 | 説明 | 備考 |
|---|---|---|---|
| type | string | FeatureCollection | "FeatureCollection"固定 |
| crs | object | crs情報 | |
| crs.type | string | name | "name"固定 |
| crs.properties.name | string | 座標参照系 | response_crsと同様(例:"EPSG:4326") |
| features[] | object[] | Featureの配列 | 複数の場合、リンク内属性情報のオブジェクトを配列要素として繰り返し |
| type | string | Feature | "Feature"固定 |
| geometry | object | ジオメトリ情報 | |
| geometry.type | string | ジオメトリのタイプ | "LineString" または "MultiLineString" |
| geometry.coordinates[] | double[] | 座標情報 | 対象リンク内属性の図形を構成する座標情報 |
| properties | object | 属性情報 | 以下、リンク内属性の詳細情報 |
| pid | string | パーマネントID | |
| 版番号 | string | 版番号+履歴番号 | |
| 属性延長 | integer | 属性延長 | 当該リンク内属性の延長をm単位で示す(実延長データ入手困難な場合は計算延長) |
| リンク番号 | string | リンク番号 | |
| 属性種別コード | integer | 属性種別コード | 詳細は attr_type_code を参照 |
| 施設管理コード | integer | 施設管理コード | 当該リンク内属性について、施設管理者が付番する管理コードを示す |
| 属性名称(カナ) | string | 属性名称(カナ) | |
| 属性名称(漢字) | string | 属性名称(漢字) | |
| 正規化座標フラグ | integer | 正規化座標フラグ |
0:現標準にて(0,0)(正規化座標)でないことを示す 1:現標準にて(0,0)(正規化座標)である事を示す |
| 橋・高架区別コード | integer | 橋・高架区別コード | 詳細は bridge_elevated_code を参照 |
| 車両通行規制コード | integer | 車両通行規制コード | 詳細は vehicle_restriction_code を参照 |
| 表示レベル参考コード | integer | 表示レベル参考コード | 詳細は display_level_code を参照 |
ステータスコード
| コード | ステータス | 説明 |
|---|---|---|
| 200 | OK | リクエストが成功しました |
| 400 | Bad Request | リクエストが不正です |
| 401 | Unauthorized | 認証情報が不正です |
| 403 | Forbidden | 権限がありません |
| 500 | Internal Server Error | サーバー内部でエラーが発生しました |