放物線縦曲線の標高計算ツール
この縦曲線標高計算ツールは、放物線縦曲線の始点から測った測点における縦断標高を求めます。始点標高、符号付き百分率の進入勾配と退出勾配、水平曲線長、始点からの距離をご入力ください。計算標高、始点からの標高差、その位置での瞬間勾配を表示します。勾配が一定の割合で変化する標準モデルを前提とした道路、鉄道、歩道、排水、造成縦断の予備検討に適しています。
無料で実行
曲線と測点の条件を統一して設定します
まず、縦曲線が始まる地点の標高をご入力ください。この点は一般に PVC または縦曲線始点と呼ばれます。接続する二つの接線勾配は符号付き百分率で入力し、上りを正、下りを負とします。たとえば 2 パーセントの勾配では、水平距離 100 単位につき標高が 2 単位上昇します。曲線長と始点からの測点距離には同じ水平単位を用い、始点標高には対応する鉛直単位を用いてください。すべてフィートでも、すべてメートルでも計算できます。式は単位整合性を保ちますが、単位系の変換は行いません。指定できる測点は 0 から曲線全長までです。0 では始点標高と進入勾配が、曲線長と等しい位置では終点標高と退出勾配が得られます。プロジェクト全体の測点番号をそのまま使わず、縦曲線始点の測点番号を差し引いた距離をご使用ください。この区別により、頻繁に発生する大きな計算誤差を防げます。
放物線による標高計算を確認します
本ツールでは、水平距離に対して勾配が一定率で変化する標準的な対称放物線縦曲線モデルを使用します。まず進入勾配と退出勾配の百分率を 100 で割り、小数勾配に変換します。始点から距離 x の標高は、始点標高に進入接線による標高増分を加え、さらに勾配差と曲線長から得られる二次補正を加えた値です。簡潔には、始点標高 + g1 × x + (g2 − g1) × x の二乗 ÷ 曲線長の 2 倍となります。この式は凸型、凹型、および両勾配が同符号の縦曲線に使用できます。瞬間勾配は進入勾配と退出勾配の間を線形補間します。測点は基本的な縦断線形計算で一般的な水平距離として扱います。弧長補正、地球曲率、屈折、片勾配、非対称曲線モデルは考慮しません。後続計算では、元の設計精度を保持してください。
設計で結果を照査して活用します
算出標高を計画縦断上の一点として扱い、前後の線形との整合をご確認ください。最低限の確認として始点と終点を計算します。始点では入力した始点標高が正確に再現され、両端の勾配は入力した進入勾配と退出勾配に一致する必要があります。凸型曲線では通常、曲線に沿って勾配が低下し、凹型曲線では上昇します。勾配の符号が異なる場合は最高点または最低点付近をサンプリングできますが、極値の測点自体は別途出力されません。計画縦断と測量地盤を比較する際は、標高基準面と測点原点が同一であることをご確認ください。本計算は幾何形状を示すもので、基準適合性を判定するものではありません。視距、排水、快適性、建築限界、管理機関が定める最小 K 値は、適用基準に従って別途照査が必要です。施工測設や署名を伴う設計文書では、適切な精度を保持し、独立照査と所定の審査手順を実施してください。
活用例
道路縦断を標本化する
凸型または凹型縦曲線上の選択した距離で計画標高を計算し、縦断表を作成します。
勾配と排水を確認する
道路、側溝、造成線形が縦曲線と交差する地点の標高と瞬間勾配を確認します。
設計と測量成果を比較する
切土、盛土、鉛直偏差を求める前に、測量測点における計画標高を算出します。
よくある質問
勾配はどの形式で入力しますか?
符号付き百分率でご入力ください。2 は 2 パーセントの上り、-1.5 は 1.5 パーセントの下りを表します。
フィートとメートルのどちらも使えますか?
はい。標高、曲線長、測点距離に同じ長さ単位をご使用ください。結果の標高も同じ単位になります。
測点 0 はどこですか?
縦曲線の始点です。プロジェクト測点を入力する前に、始点からの距離へ換算してください。
凸型と凹型の両方に対応しますか?
はい。進入勾配と退出勾配の符号により、凸型、凹型、または同方向の遷移が決まります。
API 計算の料金はいくらですか?
API リクエストは 1 回 $0.002 からです。ブラウザー計算ではサーバーへのリクエストは不要です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/eng/vertical-curve-elevation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_elevation":100,"entry_grade_percent":2,"exit_grade_percent":-1,"curve_length":200,"station_from_start":75}'const res = await fetch("https://api.kit.forhosting.com/eng/vertical-curve-elevation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_elevation": 100,
"entry_grade_percent": 2,
"exit_grade_percent": -1,
"curve_length": 200,
"station_from_start": 75
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eng/vertical-curve-elevation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_elevation": 100,
"entry_grade_percent": 2,
"exit_grade_percent": -1,
"curve_length": 200,
"station_from_start": 75
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eng/vertical-curve-elevation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_elevation":100,"entry_grade_percent":2,"exit_grade_percent":-1,"curve_length":200,"station_from_start":75}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_elevation":100,"entry_grade_percent":2,"exit_grade_percent":-1,"curve_length":200,"station_from_start":75}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eng/vertical-curve-elevation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start_elevation": 100,
"entry_grade_percent": 2,
"exit_grade_percent": -1,
"curve_length": 200,
"station_from_start": 75
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eng.vertical_curve_elevation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |