平面多角形の周長
東距500000〜500100、北距4649776〜4649876の角では、周長は400で、4つの辺はそれぞれ100です。単位は座標と同じです。大圏の長さではなく、地図の平面上で直線の辺を足した値です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
測量技術者、GIS分析者、現場エンジニアは、区画の角点・建物フットプリント・在庫ポリゴンを、生の緯度経度ではなくメートル単位の東西値・南北値として、すでに局所または国家グリッドへ投影した状態で扱うことが多くあります。その投影平面上では、閉じた図形を囲むフェンス長は、連続する頂点間のユークリッド直線距離の和に、最後の始点への戻りを加えたものです。WGS84 上の球面大圏長ではなく、地図単位の平面周長が必要なときにご利用ください。
投影平面周長が大圏長ではない理由
緯度と経度は曲がった地球上の位置を表します。度数差を足したり、それらをデカルト座標の x・y として扱ったりすると、緯度や投影の選び方によって長さが伸び縮みします。
座標が投影座標系 — UTM ゾーン、国家グリッド、現地サイトグリッド — に変換されると、東西値と南北値は、限られた領域内の距離がフェンス・舗装・在庫に十分な精度になるよう選ばれた平面上の線形地図単位(通常はメートル)になります。平面多角形の周長は、その地図単位での順序付きリングの閉じた経路長にほかなりません。
各辺は連続する角点間の東西差と南北差の斜辺であり、最後の角点は最初の角点へ戻って接続されます。この定義は、測量野帳、CAD 現場図、多くのデスクトップ GIS 計測ツールが投影後に境界長を報告する方法と一致します。緯度経度リング上の球面ハバーサイン周長とは意図的に異なり、地理度のみで共有の投影 CRS がない場合には後者が適切です。
平面経路を選ぶことで、すでに投影されたメートル座標に大圏モデルを安易に当てはめて短い敷地境界を過小・過大評価することを避け、同じグリッド上で運用されている巻尺やトータルステーションのトラバースと結果を比較可能に保ちます。
入力契約:東西値・南北値と閉じたリング
vertices を easting と northing を持つオブジェクトの必須配列として送ってください(第一成分の別名は e・x・east、第二成分は n・y・north。各頂点は二要素配列でも可)。図形が真の多角形であり、二角形や一点にならないよう、少なくとも三頂点が必要です。
先頭と末尾がごく小さなイプシロン内で一致している場合 — GeoJSON 形式の閉リングパターン — 重複する閉合頂点は計測前に捨てられ、最終辺が二重計上されません。そうでなければ、サービスは常に残る最後の頂点から最初の頂点への閉合セグメントを追加します。
古典的検算:任意の UTM 風オフセット上の百メートル四方の軸平行矩形は周長四百、各辺百の四辺になります。対話的な現場確認には無料ブラウザフォームを、地籍インポートの検証やフェンス長の見積もりには同じ契約をスクリプトから呼び、閉リング走査を再実装しないでください。
平面東西・南北周長が実務で現れる場面
自治体 GIS と土地管理パイプラインは、すでに国家投影 CRS に載った区画リングを出力します。その東西・南北から平面周長を求めると、法的図面の地図グリッドに整合したフェンスや壁の見積もりが得られ、バッチごとにフルデスクトップ GIS を起動する必要がありません。
建設・土木チームは建物フットプリントと敷地境界を CAD 上の投影ポリラインとして保持します。共有の辺長合計オラクルは、オフィススクリプト、Web レビューツール、モバイル現場アプリの間で材料拾い出しを揃えます。
環境・農業プロジェクトは、すでに投影されたベースマップ上で区画境界を数字化することが多く、平面周長はバッファ費用、家畜用周回フェンス、三点未満の縮退リングを拒否する品質検査に使われます。本 parse 機能は決定的でネットワーク呼び出しがなく、入力ハッシュによるキャッシュも安全です。
後で緯度経度の球面大圏長、同一平面上の靴紐公式による面積、閉じない開ポリライン長が必要になった場合は、この平面多角形周長ランディングを過負荷にせず、別意図として扱ってください。
活用例
投影区画のフェンス見積もり
国家グリッド上の地籍東西・南北角点から平面周長を求め、フェンスや壁材を発注する前に活用します。
CAD・現場図の数量拾い
投影済み建物フットプリントの順序付き頂点を、図面で用いるサイト CRS に整合した閉周長に変換します。
GIS インポートの品質検査
取り込まれた投影リングが妥当な平面周長と少なくとも三つの異なる角点を持つかを、本番レイヤ投入前に検証します。
よくある質問
平面多角形の周長はどのように計算されますか?
投影済み頂点の各連続対をユークリッド距離(easting と northing の差に対する Math.hypot)で測ります。順序付きリングは自動で閉じられ、セグメント長が合計されます。
何個の頂点が必要ですか?
少なくとも三つです。 重複する閉合点(先頭が末尾と一致)を捨てた後も、リングには三つ以上の角点が必要です。
入力リングは最初から閉じている必要がありますか?
いいえ。 先頭と末尾の座標がごく小さなイプシロン内で一致していれば、重複は二重計上されません。異なる場合、サービスは最後の頂点から最初の頂点への閉合セグメントを追加します。
大圏の地理的周長と同じですか?
いいえ。 本ツールは座標がすでに平面 CRS(東西・南北の地図単位)へ投影済みであることを前提とします。緯度経度の大圏リング長には、地理的多角形周長の機能を代わりに使ってください。
費用はいくらですか?
ブラウザツールは無料でローカル実行されます。無効入力は課金されません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/polygon-perimeter-planar \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vertices":[{"easting":500000,"northing":4649776},{"easting":500100,"northing":4649776},{"easting":500100,"northing":4649876},{"easting":500000,"northing":4649876}]}'const res = await fetch("https://api.kit.forhosting.com/geo/polygon-perimeter-planar", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vertices": [
{
"easting": 500000,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649876
},
{
"easting": 500000,
"northing": 4649876
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/polygon-perimeter-planar",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vertices": [
{
"easting": 500000,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649876
},
{
"easting": 500000,
"northing": 4649876
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/polygon-perimeter-planar", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vertices":[{"easting":500000,"northing":4649776},{"easting":500100,"northing":4649776},{"easting":500100,"northing":4649876},{"easting":500000,"northing":4649876}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vertices":[{"easting":500000,"northing":4649776},{"easting":500100,"northing":4649776},{"easting":500100,"northing":4649876},{"easting":500000,"northing":4649876}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/polygon-perimeter-planar", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"vertices": [
{
"easting": 500000,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649776
},
{
"easting": 500100,
"northing": 4649876
},
{
"easting": 500000,
"northing": 4649876
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.polygon_perimeter_planar",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本機能は投影済み頂点の順序付きリストを受け取り、少なくとも三つの有限な角点がリングを成すことを検証し、先頭と末尾が異なる場合は自動で多角形を閉じ、辺ごとの長さと method タグ planar_edge_sum 付きの決定的な周長を返します。同じ純粋モジュールが無料ブラウザツールと前払い API 経路を駆動するため、対話確認とバッチスクリプトが辺長合計の契約で食い違うことはありません。
投影平面周長が大圏長ではない理由
本エンドポイントはアルゴリズムを純粋な辺長合計に固定し、同じ頂点リストに対して言語や実行環境が同じ数値を再現します。
入力契約:東西値・南北値と閉じたリング
値は有限数でなければならず、欠落フィールド・空文字列・NaN・Infinity は不正フィールド名を示す invalid_input で失敗し課金されません。成功時、JSON 本体は安定シリアライズ用に丸めた perimeter、閉合重複除去後のリング頂点数 n、元の入力長 vertex_count、辺数 segments(n と等しい)、真偽フラグ closed_input、走査に使った正規化東西・南北リスト vertices、閉合辺を末尾に含む順序付き辺長 edges、method に planar_edge_sum を返します。API 価格は成功一件あたり公開ベース $0.002 です。
平面東西・南北周長が実務で現れる場面
エンジンが純粋 parse の tier A であるため、検証失敗は残高を消費せず、成功実行は一件あたり $0.002 のままです。