コンテンツにスキップ

拠点間コスト一括高速計算(車)

/bulk_multi_cost_car [POST] [GET]

基本情報

概要

指定された複数地点を起点・終点とする全経路のパターンを網羅し、2地点間の移動距離と移動時間の一覧を算出します。
配送計画などの大量経路のコスト計算が可能となり、最短経路算出の根拠として利用いただけます。
例えば100地点×100地点の組み合わせの距離と所要時間の取得ができます。
本APIの返却値は推論値であり、元データの修正・変更はできませんのでご承知おきください。

URL

https://{HOST}/{CID}/v1/bulk_multi_cost_car

※APIマーケットでは提供しておりません

出力形式

  • JSON

対応言語

  • ja

パラメータ

パラメータ名 必須 概要 型名 デフォルト値 上下限/選択値 備考
coordinates 地点緯度経度 カンマ区切りの緯度経度の配列 地点指定数
GET
・最小値:2
・最大値:150
POST
・最小値:2
・最大値:300
・緯度,経度の順で指定
・測地系:世界測地系
・緯度経度の単位:度表記の10進法
例)[[35.653235,139.800618],[36.711835,139.841567]]
base_time 走行時間帯 文字列(日付時刻)YYYY-MM-DDThh:mm:ss 現在時刻
response_type 返却形式 文字列 matrix matrix: マトリックス形式
json:json形式
指定地点数上限
json: 200地点
matrix: 300地点

※json形式の場合、出発地と目的地が同じパターンの結果は除いて返却します
use_highway 道路種別 真偽値 true true:有料ルート
false:無料ルート
order 同一出発地点内での出力順 文字列 specified typeでjsonを選択した場合のみ有効
specified:地点の指定順
distance:距離順
duration:走行時間順

パラメータ構成例[GET]

  • 東京近郊の3地点を指定し、無料ルートを利用した場合の検索結果をjson形式での出力かつ距離順でソートする
/bulk_multi_cost_car?coordinates=[[35.697293,139.720119],[35.717724,139.711153],[35.684453,139.739775]]&response_type=json&use_highway=false&order=distance
  • 東京近郊の3地点を指定し、無料ルートを利用した場合の検索結果をmatrix形式で出力
/bulk_multi_cost_car?coordinates=[[35.697293,139.720119],[35.717724,139.711153],[35.684453,139.739775]]&response_type=matrix&use_highway=false

パラメータ構成例[POST]

  • 東京近郊の5地点を指定し、json形式での出力かつ検索結果を走行時間順にソートする

    {
      "coordinates": [[35.697293,139.720119],[35.717724,139.711153],[35.684453,139.739775],[35.689603,139.733032],[35.725186,139.73232]],
      "response_type": "json",
      "use_highway": False
    }
    

  • 東京近郊の5地点を指定し、matrix形式での出力

    {
      "coordinates": [[35.697293,139.720119],[35.717724,139.711153],[35.684453,139.739775],[35.689603,139.733032],[35.725186,139.73232]],
      "response_type": "matrix"
    }
    

レスポンス(matrix形式)

  • パラメータresponse_type=matrixを指定、あるいは未指定の場合に出力されるJSONオブジェクトを以下に記載します
名称 レスポンス名 型名 配列 Nullable 説明
移動距離情報 distances 数値 移動距離情報
移動時間情報 durations 数値 移動時間情報
単位情報 unit Unitオブジェクト 出力される単位の情報

Unitオブジェクト

名称 レスポンス名 型名 配列 Nullable 説明
測地系 datum 数値 測地系
緯度経度の出力形式 coord_unit 文字列 緯度経度の出力形式
距離の単位 distance 数値 距離の単位
所要時間の単位 time 数値 所要時間の単位

レスポンス (json形式)

  • パラメータresponse_type=jsonを指定した場合に出力されるJSONオブジェクトを以下に記載します
名称 レスポンス名 型名 配列 Nullable 説明
移動情報 items Movementオブジェクト 移動情報のまとまり
単位情報 unit Unitオブジェクト 出力される単位の情報

Movementオブジェクト ※response_type=json指定時のみ

名称 レスポンス名 型名 配列 Nullable 説明
出発地点情報 start Startオブジェクト 出発地点情報
目的地点情報 goal_list Goalオブジェクト 目的地点情報のまとまり

Startオブジェクト

名称 レスポンス名 型名 配列 Nullable 説明
出発地点番号 id 数値 出発地点番号
coordinatesパラメータで指定した順番を0始まりで採番します
出発地点 coord Coordinateオブジェクト

Goalオブジェクト

名称 レスポンス名 型名 配列 Nullable 説明
目的地点番号 id 数値 出発地点番号
coordinatesパラメータで指定した順番を0始まりで採番します
目的地点 coord Coordinateオブジェクト
距離 distance 数値
走行時間 duration 数値

Unitオブジェクト

名称 レスポンス名 型名 配列 Nullable 説明
測地系 datum 数値 測地系
緯度経度の出力形式 coord_unit 文字列 緯度経度の出力形式
距離の単位 distance 数値 距離の単位
所要時間の単位 time 数値 所要時間の単位

レスポンス例

・json形式: 指定地点順の場合

{
  "items": [
    {
      "start": {
        "id": 0,
        "coord": {
                "lat":  35.697293,
                "lon": 139.720119
        }
      },
      "goal_list": [
        {
            "id": 1,
            "coord": {
                "lat": 35.717724,
                "lon": 139.711153
            },
            "distance": 3539.5, 
            "duration": 985
        },
        {
            "id": 2,
            "coord": {
                "lat": 35.684453,
                "lon": 139.739775
            },
            "distance": 3337.6,
            "duration": 776
        },
        {
            "id": 3,
            "coord": {
                "lat": 35.689603,
                "lon": 139.733032
          },
            "distance": 2948.5,
            "duration": 605 
        }
      ]
    },
    {
      "start": {
        "id": 1,
         "coord": {
                "lat": 35.717724,
                "lon": 139.711153
         }
      },
      "destinations": [
       // 目的地
        { 
            "id": 0, 
            "coord": {
                "lat": 35.697293,
                "lon": 139.720119
            },
            "distance": 3539.6,
             "duration": 864 
        },
        { 
            "id": 2,
            "coord": {
                "lat": 35.684453,
                "lon": 139.739775
            },
             "distance": 6307.8,
              "duration": 1216 
        }
        {
            "id": 3,
            "coord": {
                "lat": 35.689603,
                "lon": 139.733032
            },
            "distance": 5918.7,
            "duration": 1107    
        }
      ]
    }
  ],
  unit {
    "datum": "wgs84",
     "coord_unit": "degree",
     "distance": "metre",
     "time": "minute"
  }
}

・json形式: 移動距離順の場合

{
  "items": [
    {
      "start": {
        "id": 0,
        "coord": {
                "lat":  35.697293,
                "lon": 139.720119
        }
      },
      "goal_list": [
        {
            "id": 3,
            "coord": {
                "lat": 35.689603,
                "lon": 139.733032
          },
            "distance": 2948.5,
            "duration": 605 
        },
        {
            "id": 2,
            "coord": {
                "lat": 35.684453,
                "lon": 139.739775
            },
            "distance": 3337.6,
            "duration": 776
        },
        {
            "id": 1,
            "coord": {
                "lat": 35.717724,
                "lon": 139.711153
            },
            "distance": 3539.5, 
            "duration": 985
        }
      ]
    },
    {
      "start": {
        "id": 1,
         "coord": {
                "lat": 35.717724,
                "lon": 139.711153
         }
      },
      "destinations": [
        // 目的地
        { 
            "id": 0, 
            "coord": {
                "lat": 35.697293,
                "lon": 139.720119
            },
            "distance": 3539.6,
             "duration": 864 
        },
        {
          "id": 3,
          "coord": {
              "lat": 35.689603,
              "lon": 139.733032
          },
            "distance": 5918.7,
            "duration": 1107    
        },
        { 
            "id": 2,
            "coord": {
                "lat": 35.684453,
                "lon": 139.739775
            },
             "distance": 6307.8,
              "duration": 1216 
        }
      ]
    }
  ],
  unit {
    "datum": "wgs84",
     "coord_unit": "degree",
     "distance": "metre",
     "time": "minute"
  }
}

・matrix形式

{
    "distances": [
        [
            0,
            3539.5,
            3337.6,
            2948.5,
            4636
        ],
        [
            3539.6,
            0,
            6307.8,
            5918.7,
            2977.7
        ],
        [
            3300.5,
            6673.8,
            0,
            1748.7,
            7072.8
        ],
        [
            2311,
            5466.6,
            1218.3,
            0,
            5237.4
        ],
        [
            4625.8,
            2980,
            6318.9,
            6391.7,
            0
        ]
    ],
    "durations": [
        [
            0,
            967,
            760,
            600,
            1191
        ],
        [
            852,
            0,
            1194,
            1098,
            771
        ],
        [
            805,
            1407,
            0,
            506,
            1395
        ],
        [
            562,
            1098,
            348,
            0,
            1116
        ],
        [
            1120,
            738,
            1443,
            1214,
            0
        ]
    ],
    "unit" {
      "datum": "wgs84",
      "coord_unit": "degree",
      "distance": "metre",
      "time": "minute"
    }
}

エラー情報

エラーハンドリングについて

エラーメッセージは追加/変更/削除されることがあります。
エラーハンドリングされる場合はHTTPステータスコードをもとにご対応ください。
共通エラーについてはこちらをご参照ください。

HTTPステータス エラーメッセージ 発生理由
405 This http method is invalid : 許可されていないHTTPメソッドでアクセスされた場合に発生します。
POST リクエスト時 --- ---
400 request body is required POSTリクエストでリクエストボディが指定されていない場合に発生します。
400 invalid body リクエストボディのBase64デコードに失敗した場合に発生します。
400 request body is invalid リクエストボディが正しいJSON形式ではない場合に発生します。
400 coordinates is required リクエストボディのJSONに coordinates フィールドが含まれていない場合に発生します。
400 parameter error: coordinates: required field coordinates が指定されていない場合に発生します。
400 parameter error: coordinates: an invalid coords: coordinates がリスト型でない、または指定地点が1地点のみ(2未満)の場合に発生します。
400 parameter error: coordinates: an invalid coords: duplicate coordinates found coordinates に同一の座標が重複して含まれている場合に発生します。
400 parameter error: coordinates: an invalid coord: coordinates 内の要素が配列でない、または配列の要素数が2ではない場合に発生します。
400 parameter error: coordinates: an invalid latitude : coordinates 内の緯度が文字列型でない、degree形式(小数点付き)でない、または日本国内の範囲外の場合に発生します。
400 parameter error: coordinates: an invalid longitude : coordinates 内の経度が文字列型でない、degree形式(小数点付き)でない、または日本国内の範囲外の場合に発生します。
400 parameter error: response_type: unallowed value response_type に matrix, json 以外の不正な値を指定した場合に発生します。
400 parameter error: use_highway: unallowed value use_highway に true, false 以外の不正な値を指定した場合に発生します。
400 parameter error: order: unallowed value order に specified, distance, duration 以外の不正な値を指定した場合に発生します。
400 list size is too large response_type=json で座標数が200を超過、または response_type=matrix で座標数が300を超過した場合に発生します。
GET リクエスト時 --- ---
400 parameter error: coordinates: required field 必須パラメータである coordinates が指定されていない場合に発生します。
400 parameter error: coordinates: an invalid coords: coordinates がリスト型でない、または指定地点が1地点のみ(2未満)の場合に発生します。
400 parameter error: coordinates: an invalid coords: duplicate coordinates found coordinates に同一の座標が重複して含まれている場合に発生します。
400 parameter error: coordinates: an invalid coord: coordinates 内の要素が配列でない、または配列の要素数が2ではない場合に発生します。
400 parameter error: coordinates: an invalid latitude : coordinates 内の緯度が不正な場合に発生します。
400 parameter error: coordinates: an invalid longitude : coordinates 内の経度が不正な場合に発生します。
400 parameter error: response_type: unallowed value response_type に matrix, json 以外の不正な値を指定した場合に発生します。
400 parameter error: use_highway: unallowed value use_highway に true, false 以外の不正な値を指定した場合に発生します。
400 parameter error: order: unallowed value order に specified, distance, duration 以外の不正な値を指定した場合に発生します。
400 list size is too large GETリクエストで座標数が50を超過した場合に発生します。