Share via


geo_point_to_s2cell()

地理的な場所の S2 セル トークン文字列値を計算します。

S2 セルは、便利な地理空間クラスタリング ツールです。 S2 セルは球面上のセルであり、測地線エッジを持ちます。 S2 セルは、地球の表面を分割する階層の一部です。 0 ~ 30 の範囲の最大 31 レベルがあり、セルを分割する回数を定義します。 レベルは、85,011,012.19km²のエリアカバレッジを持つレベル0の最大のカバレッジから、レベル30の0.44 cm²の最も低いカバレッジまで及びます。 S2 セルは高いレベルで分割されるため、セルの中心は適切に保持されます。 2 つの地理的な場所は互いに非常に近い場合がありますが、S2 セル トークンは異なります。

Note

経度 x、緯度 y で計算された S2 セル トークン文字列に対して geo_s2cell_to_central_point() 関数を呼び出した場合、関数は必ずしも x と y を返すとは限りません。

構文

geo_point_to_s2cell(経度,緯度, [ level ])

構文規則について詳しく知る。

パラメーター

名前 必須 説明
longitude real ✔️ 地理空間座標、経度値 (度単位)。 有効な値は実数で、[-180, +180] の範囲です。
latitude real ✔️ 地理空間座標、緯度の値 (度単位)。 有効な値は実数で、[-90, +90] の範囲です。
level int 要求されたセル レベルを定義します。 サポートされる値の範囲は [0, 30] です。 指定されない場合は、既定値の 11 が使用されます。

戻り値

特定の地理的な場所の S2 セル トークン文字列値。 座標またはレベルが無効な場合、クエリは空の結果を生成します。

レベル値あたりの S2 セルのおおよその面積範囲

レベルごとに、S2 セルのサイズは似ていますが、まったく等しくありません。 近いセルほど、サイズが似る傾向があります。

Level 最小ランダム セル エッジ長 (英国) 最大ランダム セル エッジ長 (米国)
0 7842 km 7842 km
1 3921 km 5004 km
2 1825 km 2489 km
3 840 km 1310 km
4 432 km 636 km
5 210 km 315 km
6 108 km 156 km
7 54 km 78 km
8 27 km 39 km
9 14 km 20 km
10 7 km 10 km
11 3 km 5 km
12 1699 m 2 km
13 850 m 1225 m
14 425 m 613 m
15 212 m 306 m
16 106 m 153 m
17 53 m 77 m
18 27 m 38 m
19 13 m 19 m
20 7 m 10 m
21 3 m 5 m
22 166 cm 2 m
23 83 cm 120 cm
24 41 cm 60 cm
25 21 cm 30 cm
26 10 cm 15 cm
27 5 cm 7 cm
28 2 cm 4 cm
29 12 mm 18 mm
30 6 mm 9 mm

使用可能な他のグリッド システムとの比較については、「Kusto クエリ言語を使用した地理空間クラスタリング」を参照してください。

[S2] セルで集計された US Storm イベント

次の例では、S2 セルによって集計された US Storm イベントを検索します。

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_s2cell(BeginLon, BeginLat, 5)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind=map)

出力

[S2] セルによって集計された US Storm イベントのマップ レンダリングのスクリーンショット。

次の例では、S2 セル ID を計算します。

print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)

出力

s2cell
88d9b

座標のグループを検索する

次の例は、座標のグループの検索例です。 グループ内の座標の各ペアは、最大領域が 1632.45 km² の S2 セル内に存在します。

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", 10.1234, 53,
  "B", 10.3579, 53,
  "C", 10.6842, 53,
]
| summarize count = count(),                                        // items per group count
            locations = make_list(location_id)                      // items in the group
            by s2cell = geo_point_to_s2cell(longitude, latitude, 8) // s2 cell of the group

出力

s2cell count locations
47b1d 2 ["A","B"]
47ae3 1 ["C"]

空の結果

次の例では、座標の入力が無効であるため、空の結果が生成されます。

print s2cell = geo_point_to_s2cell(300,1,8)

出力

s2cell

次の例では、レベルの入力が無効であるため、空の結果が生成されます。

print s2cell = geo_point_to_s2cell(1,1,35)

出力

s2cell

次の例では、レベルの入力が無効であるため、空の結果が生成されます。

print s2cell = geo_point_to_s2cell(1,1,int(null))

出力

s2cell