greatCircleDistance
lon1Deg— 1 点目の経度 (度単位) 。範囲:[-180°, 180°]。lat1Deg— 1 点目の緯度 (度単位) 。範囲:[-90°, 90°]。lon2Deg— 2 点目の経度 (度単位) 。範囲:[-180°, 180°]。lat2Deg— 2 点目の緯度 (度単位) 。範囲:[-90°, 90°]。
geoDistance
greatCircleDistance と似ていますが、球面ではなく WGS-84 楕円体上での距離を計算します。これは地球のジオイドをより正確に近似するものです。
パフォーマンスは greatCircleDistance と同等で、性能上のデメリットはありません。地球上の距離を計算する場合は、geoDistance の使用を推奨します。
技術的な注記: 十分に近い点どうしについては、座標の中点における接平面上の計量を用いた平面近似によって距離を計算します。
lon1Deg— 1 番目の地点の経度 (度) 。範囲:[-180°, 180°]。lat1Deg— 1 番目の地点の緯度 (度) 。範囲:[-90°, 90°]。lon2Deg— 2 番目の地点の経度 (度) 。範囲:[-180°, 180°]。lat2Deg— 2 番目の地点の緯度 (度) 。範囲:[-90°, 90°]。
greatCircleAngle
lon1Deg— 1 番目の点の経度 (度) 。lat1Deg— 1 番目の点の緯度 (度) 。lon2Deg— 2 番目の点の経度 (度) 。lat2Deg— 2 番目の点の緯度 (度) 。
geoToUTM
(longitude, latitude) を Universal Transverse Mercator (UTM) 座標に変換します。
UTM は 60 個の横メルカトル投影の集合で、それぞれが経度 6° 幅のゾーンをカバーし、地理座標をメートル単位の平面グリッドに写像します。ゾーンは経度に基づいて自動的に選択され、明示的な zone が指定されていない限り、ノルウェーおよびスヴァールバルに対する標準的な例外が適用されます。UTM が定義されているのは緯度 [-80°, 84°] の範囲のみで、極地では別の UPS システムが使用されます。
longitude— 度単位の経度。範囲:[-180°, 180°]。Float32/Float64。latitude— 度単位の緯度。範囲:[-80°, 84°]。Float32/Float64。zone— 任意。自動選択ではなく、この UTM ゾーンへの投影を強制します。範囲:[1, 60]。(U)Int*。
(easting, northing, zone, band) を返します。easting と northing は東距と北距でメートル単位 (Float64) 、UTM の zone はゾーン番号 (UInt8) 、MGRS 緯度の band は帯域文字 (FixedString(1)) です。band が 'N' 以降の場合は北半球を示します。
緯度が [-80°, 84°] の範囲外、または経度が [-180°, 180°] の範囲外の場合、例外を生成します。
例
UTMToGeo
(longitude, latitude) に変換します。これは geoToUTM の逆変換です。
easting— 東距 (メートル単位。500000 m の仮東距を含む) 。(U)Int*/Float*。northing— 北距 (メートル単位。南半球では 10000000 m の仮北距を含む) 。(U)Int*/Float*。zone— UTM ゾーン番号。範囲:[1, 60]。(U)Int*。is_north— 半球。北半球は1、南半球は0。(U)Int*。
(longitude, latitude)。Tuple(Float64, Float64)。
例
geoToMGRS
(longitude, latitude)を、Military Grid Reference System (MGRS)文字列にエンコードします。
文字列の形式は<zone><band><100km square><easting><northing>で、たとえば31UDQ4825111935です。precision引数は、東距と北距のそれぞれに使用する桁数を制御します。5 (デフォルト) は1 m、4は10 m、3は100 m、2は1 km、1は10 km、0は100 kmグリッドスクエアのみを表します。MGRSは、緯度が[-80°, 84°]の範囲内にある場合にのみ定義されています。
longitude— 度単位の経度。範囲:[-180°, 180°]。Float32/Float64。latitude— 度単位の緯度。範囲:[-80°, 84°]。Float32/Float64。precision— 省略可。東距・北距のそれぞれの桁数。デフォルト:5。範囲:[0, 5]。(U)Int*。
String。
例
MGRSToGeo
(longitude, latitude) にデコードします。これは geoToMGRS の逆です。
返される Point は、参照されたグリッド正方形の中心点です。そのため、結果の精度は文字列にエンコードされている精度と一致します。入力中の空白は無視され、文字の大文字と小文字は区別されません。
mgrs— デコードする MGRS 参照文字列。String/FixedString。
(longitude, latitude) を返します。Tuple(Float64, Float64)。
例
pointInEllipses
x, y— 平面上の点の座標。xᵢ, yᵢ—i番目の楕円の中心の座標。aᵢ, bᵢ—i番目の楕円の軸を x, y 座標の単位で表したもの。
2+4⋅n でなければなりません。ここで、n は楕円の数です。
戻り値
点が少なくとも 1 つの楕円の内側にある場合は 1、そうでない場合は 0。
例
pointInPolygon
(x, y)— 平面上の点の座標。データ型 — Tuple — 2 つの数値からなるタプル、または Point。[(a, b), (c, d) ...]— Polygon の頂点。データ型 — Array または Ring。各頂点は座標の組(a, b)で表されます。頂点は時計回りまたは反時計回りの順序で指定する必要があります。頂点の最小数は 3 です。- この関数は穴 (切り抜き部分) のある Polygon もサポートします。データ型 — Polygon。
Polygon全体を第 2 引数として渡すか、外側のリングを最初に渡し、その後に各穴を個別の追加引数として渡します。 - この関数は MultiPolygon もサポートします。データ型 — MultiPolygon。
MultiPolygon全体を第 2 引数として渡すか、各構成 Polygon をそれぞれ個別の引数として列挙します。 - Polygon 引数には、Polygon 形状の値 (
Ring、Polygon、またはMultiPolygon) を保持する Geometry カラムも使用できます。
1、そうでない場合は 0 を返します。
点が Polygon の境界上にある場合、この関数は 0 または 1 のいずれかを返すことがあります。
例
注 • ジオメトリの検証をスキップするには、validate_polygons = 0を設定できます。 •pointInPolygonは、すべてのポリゴンが正しい形式であることを前提としています。入力が自己交差している、リングの順序が誤っている、または辺同士が重なっている場合、結果は信頼できなくなります。特に、点が辺上や頂点上にちょうどある場合や、“内側” と “外側” の区別が定義できない自己交差部分の内部にある場合は、その傾向が顕著です。 • ポリゴン引数が定数で、点が索引付きのキーカラムで表されている場合 (たとえば、x, yがPRIMARY KEYの一部である、またはminmax索引でカバーされているテーブル上のpointInPolygon((x, y), constant_polygon)など) 、ClickHouse は主キーとminmaxのデータスキップ索引の両方を使って、無関係なグラニュールを刈り込むことができます。