リージョンモードでルートを計算
次のチュートリアルでは、ドイツのベルリンにある 3 x 3 の簡単なマトリックスの例を示します。このマトリックスの原点と目的地は次のとおりです。
- アレクサンダー広場 (52.52103,13.41268)
- ブランデンブルク門 (52.51628, 13.37771)
- テンペルホーフ畑 (52.47342,13.40357)
自動車走行距離のマトリックスを計算するには、以下のリクエストを使用します。 リクエストでは目的地の配列が指定されていないため、出発地は宛先と見なされ、結果のマトリックスは 3 x 3 のマトリックスになります。 リージョン の定義は、経由地 を囲むバウンディング ボックス です。経由地 の近くで適切にルーティングできるように、小さなマージンが追加されています。 既定では、サービスは移動時間のマトリックスを計算しますが、レスポンスでは、時間ではなく距離を取得するため、リクエストではdistances
値を使用してmatrixAttributes
プロパティが指定されます。
{
"origins": [
{"lat": 52.52103, "lng": 13.41268},
{"lat": 52.51628, "lng": 13.37771},
{"lat": 52.47342, "lng": 13.40357}
],
"regionDefinition": {
"type": "boundingBox",
"north": 52.53,
"south": 52.46,
"west": 13.35,
"east": 13.42
},
"matrixAttributes": ["distances"]
}
表示される内容は次のとおりです。
マーカーは出発地 / 目的地で、バウンディング ボックスは青色の四角形です。
マトリックスリクエストを送信するすべての手順については、「利用開始」セクションで説明しています。 レスポンスは次のようになります。
{
"matrixId": "0b7f828f-49c8-43e4-9727-063eafbf7d7a",
"matrix": {
"numOrigins": 3,
"numDestinations": 3,
"distances": [0, 2907, 6446, 3258, 0, 5954, 6669, 5966, 0]
},
"regionDefinition": {
"type": "boundingBox",
"north": 52.53,
"south": 52.46,
"west": 13.35,
"east": 13.42
}
}
この応答は、メートル単位のエントリを含むこのマトリックスに対応しています。
出発地 \ 目的地 | 1 | 2 | 3 |
1 | 0 | 2908 | 11262 |
2 | 3506 | 0 | 10207 |
3 | 11333 | 9414 | 0 |
オートサークル リージョン定義
出発地を中心にバウンディング ボックス、サークルを定義する代わりに、サークルの自動派生をリクエストできます。 以下のリクエストは、上記のリクエストautoCircle
と同じですが、このフィーチャーを使用しています。
{
"origins": [
{"lat": 52.52103, "lng": 13.41268},
{"lat": 52.51628, "lng": 13.37771},
{"lat": 52.47342, "lng": 13.40357}
],
"regionDefinition": {
"type": "autoCircle"
},
"matrixAttributes": ["distances"]
}
このフィールドmargin
は指定されていないため、サービスではデフォルト値の 10 km が使用されます。 派生したサークルがマトリックスレスポンスで返されます。
{
"matrixId": "05fef3ee-dd1a-450f-a5fe-15c95b7ee8a0",
"matrix": {
"numOrigins": 3,
"numDestinations": 3,
"distances": [0, 2907, 6446, 3258, 0, 5954, 6669, 5966, 0 ]
},
"regionDefinition": {
"type": "circle",
"center": {"lat": 52.497225, "lng": 13.395195},
"radius": 12900
}
}
これが表示される領域です。
余白を小さくすることで、リージョンのサイズを小さくできます。
{
"origins": [
{"lat": 52.52103, "lng": 13.41268},
{"lat": 52.51628, "lng": 13.37771},
{"lat": 52.47342, "lng": 13.40357}
],
"regionDefinition": {
"type": "autoCircle",
"margin": 1000
},
"matrixAttributes": ["distances"]
}
これは対応するマトリックスのレスポンスです。
{
"matrixId": "b76f08be-9cc2-4a4e-9b27-deb766df9e90",
"matrix": {
"numOrigins": 3,
"numDestinations": 3,
"distances": [0, 2907, 6446, 3258, 0, 5954, 6669, 5966, 0 ]
},
"regionDefinition": {
"type": "circle",
"center": {"lat": 52.497225, "lng": 13.395195},
"radius": 3900
}
}
サークルには、マージンの小さい出発地が含まれています。
autoCircle
には、限られたリージョンで行列エントリを計算するために使用されるリージョンサイズを制限するために使用できるパラメーター maxRadius
があります。これは、次のいずれかの操作を行う必要がある場合に特に役立ちます。
- 通常は、
autoCircle
がリージョンサイズの制限を超過しても、常に結果が得られるようにしてください。 - リージョンが大きくなりすぎないようにして、応答時間を制限します。
マージンに一致するWaypoints、または対応するエントリの計算されたauto autoCircle, you will instead get
errorCodes=
4` の外側のWaypointの場合。
{
"origins": [
{"lat": 52.586821, "lng": 13.581717},
{"lat": 52.607613, "lng": 13.197346},
{"lat": 52.4087162, "lng": 13.2962859},
{"lat": 52.3999995, "lng": 17.0103584}
],
"regionDefinition": {
"type": "autoCircle",
"maxRadius": 20000
},
"matrixAttributes": ["distances"]
}
これは対応するマトリックスのレスポンスです。
{
"matrixId": "b76f08be-9cc2-4a4e-9b27-deb766df9e90",
"matrix": {
"numOrigins": 4,
"numDestinations": 4,
"distances": [
0, 50367, 40323, 0,
49747, 0, 39525, 0,
40119, 30042, 0, 0,
0, 0, 0, 0
],
"errorCodes": [
0, 0, 0, 4,
0, 0, 0, 4,
0, 0, 0, 4,
4, 4, 4, 4
]
},
"regionDefinition": {
"type": "circle",
"center": {"lat": 52.5081646, "lng": 13.3895315},
"radius": 27062
}
}
次の図に、waypoints と計算された autoCircle
を示します。