h3_distance fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 11.3 LTS ke atas

Mengembalikan jarak kisi dari dua ID sel H3 input.

Sintaks

h3_distance ( h3CellId1Expr, h3CellId2Expr )

Argumen

  • h3CellId1Expr: Ekspresi BIGINT, atau ekspresi STRING heksadesimal yang mewakili ID sel H3.
  • h3CellId2Expr: Ekspresi BIGINT, atau ekspresi STRING heksadesimal yang mewakili ID sel H3.

Mengembalikan

Nilai BIGINT yang merupakan jarak kisi dari dua sel H3 input, yang diharapkan memiliki resolusi yang sama.

Fungsi mengembalikan NULL jika salah satu ekspresi input adalah NULL. Fungsi melakukan validasi parsial mengenai apakah argumen input adalah ID sel H3 yang valid. Kondisi yang diperlukan, tetapi tidak memadai untuk ID H3 yang valid adalah bahwa nilainya antara 0x08001fffffffffff dan 0x08ff3b6db6db6db6. Perilaku fungsi tidak terdefinisi jika salah satu dari dua ID sel input bukan ID sel yang valid.

Kondisi kesalahan

  • Jika h3CellId1Expr atau h3CellId2Expr adalah STRING yang tidak dapat dikonversi ke BIGINT atau sesuai dengan nilai BIGINT yang lebih kecil dari 0x08001fffffffffff atau lebih besar dari 0x08ff3b6db6db6db6, fungsi mengembalikan H3_INVALID_CELL_ID.
  • Jika jarak kisi tidak terdefinisi, fungsi akan mengembalikan H3_UNDEFINED_GRID_DISTANCE. Jarak kisi dapat tidak terdefinisi karena salah satu alasan berikut:
    • Dua sel H3 input memiliki resolusi yang berbeda.
    • Salah satu dari dua sel H3 input adalah sel pentagonal.
    • Dua sel H3 dipisahkan oleh sel pentagonal.
    • Dua sel H3 terlalu jauh terpisah satu sama lain.

Contoh

-- Example where the two arguments are BIGINTs representing H3 cells.
> SELECT h3_distance(599686030622195711, 599686015589810175);
 2

-- Example where the two arguments are hexadecimal STRINGs representing H3 cells.
> SELECT h3_distance('85283447fffffff', '8528340ffffffff')
 2

-- Example of two cells that too far apart from each other.
> SELECT h3_distance(h3_longlatash3(-120, 45, 13), h3_longlatash3(120, 45, 13))
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635723017894513407 and 635869868887430591 is undefined

-- Example of two cells with different resolutions.
> SELECT h3_distance(h3_longlatash3(120, 45, 13), h3_longlatash3(120, 45, 12));
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635869868887430591 and 631366269260060159 is undefined

-- First cell ID is a pentagon.
> SELECT h3_distance(590112357393367039, 590678880759578623)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112357393367039 and 590678880759578623 is undefined

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112494832320511 and 590112632271273983 is undefined