ForHosting KIT · 旅行・地理

地点間の大圏距離行列を計算

最大200地点のすべての組み合わせの大圏距離を、キロメートルで1つの表にします。3地点なら3×3の表になり、対角は0、各距離は対称の位置にも入ります。行と列は入力順のままです。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日

地点間距離行列計算では、順序付きの緯度・経度リストから、すべての組み合わせについて大圏距離をキロメートル単位で求めます。配送経路の準備、地点のクラスタリング、近接性の分析など、実際の経路を選ぶ前の基礎データとして利用できます。出力では入力順を維持し、対角要素をゼロにして、各距離を反対側へ正確に反映します。外部サービスへの問い合わせは行わないため、同じ座標からは常に同じ結果が得られます。

必要な順序で座標を準備します

2個から200個までの地点を指定し、各地点に十進度の数値として<code>lat</code>と<code>lon</code>を含めてください。緯度は-90から90、経度は-180から180の範囲である必要があります。リスト内の位置が結果の行番号と列番号になるため、計算前に一貫した順序を決めておくことが重要です。

たとえば配送拠点を先頭に置き、その後に配達先を並べると、行ゼロには拠点から各配達先までの距離が入り、列ゼロには逆向きの同じ値が入ります。この機能は地点の並べ替え、統合、ジオコーディング、名称付与を行いません。利用者側の識別子は座標リストと一緒に保存し、配列のインデックスで対応付けてください。

同一座標を複数指定することもでき、業務上は別の訪問先であっても距離は正しくゼロになります。表計算データでは緯度列と経度列が入れ替わっている場合があるため、入力元を事前に確認することをおすすめします。

対称行列の計算方法を確認します

各地点の一意な組み合わせを、平均地球半径6,371.0088キロメートルとHaversine公式で評価します。この公式は球体上の2点を結ぶ短い弧、つまり大圏距離を求めます。実装では行列の上三角部分だけを計算し、各値を鏡像位置へコピーして、対角要素を厳密にゼロへ設定します。

そのため、末尾の桁がずれる可能性のある浮動小数点計算を2回行わずに対称性を保証できます。大圏距離は地理上の直線距離であり、自動車、徒歩、鉄道、船舶の実経路ではありません。地形、進入制限、一方通行、橋、国境などは考慮しません。

分析用のコスト行列、初期ヒューリスティック、候補の絞り込みにお使いください。実際の所要時間や走行距離が必要な場合は、選択した組み合わせを道路経路サービスで追加処理してください。

結果を適切に活用します

地理的距離には方向がないため、逆向きの要素も同じ値になります。この形式は、クラスタリング、最近傍の選択、最小全域木、施設候補の比較、巡回セールスマン問題の初期解などへ直接入力できます。行列の容量は地点数の二乗で増え、200地点では40,000個の数値セルになるため、入力には上限があります。

さらに大きな集合は地域ごとに分割するか、必要な組み合わせだけを計算してください。最適化処理ではコスト行列として使えますが、道路が存在するとは判断できません。インデックスを追跡できるよう、元の順序付き座標も結果と一緒に保存してください。

配送順序の初期解を作る

道路経路を詳しく取得する前に、最近傍法や挿入法が必要とする地点間コスト表を作成します。

施設候補を比較する

倉庫と対象地点の全距離を順序付き行列で測定し、立地分析に利用します。

近い訪問先をまとめる

キロメートル距離を、しきい値、グラフ、近接性に基づくクラスタリングの再現可能な入力にします。

自動車での走行距離ですか?

いいえ。 球体上の大圏距離であり、道路や通行制限は反映されません。

なぜ行列は対称なのですか?

地点Aから地点Bまでの距離と、その逆方向の距離が等しいため、鏡像位置の値も一致します。

何地点まで送信できますか?

1回につき2地点から200地点まで指定できます。この上限により二乗で増える計算量と応答サイズを抑えます。

距離の計算にはどの式と地球半径を使いますか?

ハーバーサイン公式と、平均地球半径6371.0088 kmの球を使います。2地点を結ぶ最短の弧、つまり大圏距離を求めます。

表のどの行がどの地点か、どう分かりますか?

行と列の並びは入力した順番のままです。地点に名前は付かないので、手元の一覧で同じ順番の名前や番号を対応させてください。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/geo/distance-matrix

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/geo/distance-matrix \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}'
{
  "points": [
    {
      "lat": 40.7128,
      "lon": -74.006
    },
    {
      "lat": 51.5074,
      "lon": -0.1278
    },
    {
      "lat": 35.6762,
      "lon": 139.6503
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.distance_matrix",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

max_items200
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

対称行列の計算方法を確認します

安定したJSONを得るため、結果は小数点以下6桁に丸めます。

結果を適切に活用します

応答には<code>point_count</code>、固定単位の<code>km</code>、正方行列の<code>distances_km</code>が含まれます。<code>distances_km[i][j]</code>は、入力地点<code>i</code>から地点<code>j</code>までの距離です。ネットワークを使わない純粋計算なので、同じJSONに対する結果は再現可能です。

1回の料金はいくらですか?

APIは1回$0.002です。ブラウザー版はAPIを呼び出さず、端末内で無料実行できます。

行列の単位は何ですか?

すべての値はキロメートル単位で、応答にも単位が明記されます。

KITの完全なドキュメントを見る →