SearchLinks
指定した範囲(矩形または円)内にあるリンクをすべて取得する。
空間条件・属性条件・ソート条件を組み合わせて、複数リンクを一括取得できます。
💰 課金に関する注意事項
本APIは利用方法により課金額が大きくなる可能性があります。
- 広域の空間検索 空間範囲を広く指定すると、数百件以上のリンクデータを取得する可能性があります。
- 地図連動の繰り返し取得 地図画面内のノードやリンクを地図の移動・ズーム操作のたびに描画をするような実装した場合、 これらの操作の度にAPIが再実行され大量のノード・リンクが取得される可能性があります。
詳細は課金額が大きくなる可能性のあるケースとAPIを参照してください。
リクエスト
| 項目 | 内容 |
|---|---|
| HTTPメソッド | POST および GET |
| エンドポイント | /API/Link/SearchLinks |
| 認証 | トークンベース認証(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 を用いて、本 API を呼び出す例です。
矩形検索モードを使用し、指定範囲内のリンクを検索します。
JavaScript
const url = "https://pf.drm.jp/API/Link/SearchLinks";
const token = "your_token";
const data = {
spatial_search_mode: 1, // 2点による矩形検索
point1_x: 35.681000,
point1_y: 139.766500,
point2_x: 35.682000,
point2_y: 139.768000,
response_geodata: "geojson/object"
};
async function callSearchLinks() {
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));
} catch (err) {
console.error(err);
}
}
レスポンス
検索条件に一致したリンク情報が JSON 形式で返却されます。
{
"status": 1,
"total_count": 347,
"response_crs": "EPSG:4326",
"geo_data": { ... }
}
レスポンス情報
| キー | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| status | integer | 〇 | 処理結果 | 詳細は status を参照 |
| total_count | integer | 〇 | 総件数 | 検索条件に一致する件数 |
| response_crs | string | 〇 | レスポンス座標参照系 | 詳細は CRS を参照 |
| geo_data | string / object | 〇 | リンク地物情報 | リンク情報を参照 |
ステータスコード
| コード | ステータス | 説明 |
|---|---|---|
| 200 | OK | リクエスト成功 |
| 400 | Bad Request | パラメータ不正 |
| 401 | Unauthorized | 認証情報が不正です |
| 403 | Forbidden | 権限がありません |
| 500 | Internal Server Error | サーバ内部エラー |