地理空間 フィルタパラメータを移行します
すべての地理空間 フィルタは in
、 Traffic API v7 の同じパラメータを使用して指定されます。 これは、 Traffic API V6 からの変更です。 Traffic 地理空間 V6 では、 4 つの選択肢から 1 つのパラメータを指定する必要があります。
円 ( 近接 )
Traffic API v6 : prox={latitude},{longitude},{radius}
Traffic API v7: in=circle:{latitude},{longitude};r={radius}
は radius
、いずれの場合もメートル単位で測定されます。
Traffic API V6 の例 : prox=52.537675,13.40302,1000
Traffic API v7 の例 : in=52.537675,13.40302;r=1000
Bounding Box
- Traffic API v6 :
bbox={south-west latitude},{south-west longitude};{north-east latitude},{north-east longitude}
- Traffic API v7:
in=bbox:{west longitude},{south latitude},{east longitude},{north latitude}
注
Traffic API v7 は、 GeoJSON 標準を使用してバウンディング ボックス を定義します。は、 V6 で使用されているものとは逆の順序で緯度 および経度 を定義します。
- Traffic API V6 の例 : `bbox=52.527129,13.386969;52.549420,13.424134``
- Traffic API v7 の例 :
in=bbox:13.386969,52.527129,13.424134,52.549420
Corridor
- Traffic API v6 :
corridor={latitude1},{longitude1};{latitude2},{longitude2};...;{width}
- Traffic API v7:
in=corridor:{polyline};r={radius}
width
および radius
の値はメートル単位で測定 され、width
radius
の 2 倍の値になります。
- Traffic API V6 の例 :
corridor=52.529583,13.379416;52.532820,13.399157;52.538458,13.395896;52.541277,13.408856;52.539085,13.424048;230
- Traffic API v7 の例 :
in=corridor:BG-6kmkDw1zwZqqG6xmBsgL5rGmwFgqZ_oEw1d;r=230
タイル アドレス
タイル アドレスは、フォームZ/X/Y
内のアドレスを持つ特定のタイル を参照 します。ここで、Z
はズーム、X
Y
は列および行のインデックスです。 タイル アドレスはメルカトル図法に基づいています。
- Traffic API v6 :
Z/X/Y
- Traffic API v7:
in=bbox:{west longitude},{south latitude},{east longitude},{north latitude}
タイル アドレスはバウンディング ボックス に変換する必要があります。 詳細については、「タイル アドレスをバウンディング ボックス に変換」を参照してください。
- Traffic API V6 の例 :
12/2200/1343
- Traffic API v7 の例 :
in=bbox:13.359375,52.482780,13.447266,52.536273
タイル アドレスをバウンディング ボックス に変換します
タイル の要求を作成するには、タイル アドレスをそのタイル のバウンディング ボックス に変換する必要があります。 変換アルゴリズムは、次のコードサンプルに含まれています。
function tile_to_bbox(zoom, x, y) {
var n = 1;
if (zoom > 0) {
n = 2 << (zoom - 1);
}
function x_tile_to_lng(x, n) {
return (x / n * 360.0) - 180.0;
}
function y_tile_to_lat(y, n) {
return Math.atan(Math.sinh(Math.PI * (1 - 2 * y / n))) * 180 / Math.PI;
}
var west = x_tile_to_lng(x, n);
var south = y_tile_to_lat(y + 1, n);
var east = x_tile_to_lng(x + 1, n);
var north = y_tile_to_lat(y, n);
return {
west_longitude: x_tile_to_lng(x, n),
south_latitude: y_tile_to_lat(y + 1, n),
east_longitude: x_tile_to_lng(x + 1, n),
north_latitude: y_tile_to_lat(y, n)
};
}
quadkey
quadkey は、レベル 1 からターゲットタイル レベルまでの親子タイルの階層をキャプチャする数値のストリング( 0 ~ 3 )です。 パーティション分割は 、前のセクションで説明したタイル アドレスと同じです。
そのため、 quadkey は、そのエリアの情報を要求するために、そのエリアが表すバウンディング ボックス に変換できます。
- Traffic API v6 :
quadkey={quadkey}
- Traffic API v7:
in=bbox:{west longitude},{south latitude},{east longitude},{north latitude}
quadkey はバウンディング ボックス に変換する必要があります。 詳細について は、「 quadkey をバウンディング ボックス に変換」を参照してください。
- Traffic API V6 の例 :
quadkey=120210233222
- Traffic API v7 の例 :
in=bbox:13.359375,52.482780,13.447266,52.536273
quadkey をバウンディング ボックス に変換します
quadkey の要求を作成するには、まず quadkey をタイル アドレスに変換する必要があります。 次に 、 Convert タイル address to バウンディング ボックス で提供されているアルゴリズム を使用して、新たに変換されたタイル アドレスをバウンディング ボックス に変換し、要求パラメータとして送信できます。
quadkey をタイル アドレスに変換する変換アルゴリズムについては、次のコードサンプルを参照してください。
function quadkey_to_tile(quadkey) {
var x = 0;
var y = 0;
var zoom = quadkey.length;
for (var idx = 0; idx < quadkey.length; idx++) {
var quad = parseInt(quadkey.charAt(idx));
var mask = 1 << (zoom - idx - 1);
if (quad & 0x1) {
x |= mask;
}
if (quad & 0x2) {
y |= mask;
}
}
return {
zoom: zoom,
x: x,
y: y
};
}
最後に、次のコード例に示すように、両方のアルゴリズムを使用して、 quadkey から quadkey が表すタイル の地理的範囲を提供するバウンディング ボックス に直接変換できます。
function quadkey_to_bbox(quadkey) {
var tile = quadkey_to_tile(quadkey);
var bbox = tile_to_bbox(tile.zoom, tile.x, tile.y);
return bbox;
}