地理空間 フィルタパラメータを移行します

すべての地理空間 フィルタは 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 の値はメートル単位で測定 され、widthradiusの 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はズーム、XYは列および行のインデックスです。 タイル アドレスはメルカトル図法に基づいています。

  • 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

タイル アドレスをバウンディング ボックス に変換します

タイル の要求を作成するには、タイル アドレスをそのタイル のバウンディング ボックス に変換する必要があります。 変換アルゴリズムは、次のコードサンプルに含まれています。

JavaScript
/** Convert a tile address to the bounding box for that tile
 *
 * @param {number} zoom - Zoom level, integer from 1 to 17
 * @param {number} x - Column index in tile grid
 * @param {number} y - Row index in tile grid
 *
 * @returns {Object} Bounding box is an object with keys for each of the 4
 * bounds west longitude, south latitude, east longitude, and north latitude
 */
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 をタイル アドレスに変換する変換アルゴリズムについては、次のコードサンプルを参照してください。

JavaScript
/** Convert a quadkey to its tile address
 *
 * @param {string} A string containing a quadkey
 *
 * @returns {Object} Tile address stored in an object with keys `zoom`, `x`,
 * and `y`
 */
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 が表すタイル の地理的範囲を提供するバウンディング ボックス に直接変換できます。

JavaScript
/** Convert a quadkey to the bounding box for that tile
 *
 * @param {string} A string containing a quadkey
 *
 * @returns {Object} Bounding box is an object with keys for each of the 4
 * bounds west longitude, south latitude, east longitude, and north latitude
 */
function quadkey_to_bbox(quadkey) {
    var tile = quadkey_to_tile(quadkey);
    var bbox = tile_to_bbox(tile.zoom, tile.x, tile.y);

    return bbox;
}

」に一致する結果は 件です

    」に一致する結果はありません