Поделиться через


geo_point_to_geohash()

Вычисляет строковое значение геохашной строки географического расположения.

Дополнительные сведения о геохаше.

Синтаксис

geo_point_to_geohash(долгота, широты,[ точность ])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
longitude real ✔️ Геопространственные координаты, значение долготы в градусах. Допустимое значение — это реальное число и в диапазоне [-180, +180].
latitude real ✔️ Геопространственные координаты, значение широты в градусах. Допустимое значение — это реальное число и в диапазоне [-90, +90].
точность int Определяет запрошенную точность. Поддерживаемые значения находятся в диапазоне [1, 18]. Если не задано, по умолчанию используется значение 5.

Возвраты

Строковое значение геохаша заданного географического расположения с запрошенной длиной точности. Если координата или точность недопустимы, запрос создает пустой результат.

Примечание.

  • Геохаш может быть полезным инструментом геопространственного кластеризации.
  • Геохаш имеет 18 уровней точности с покрытием области от 25 миллионов км до самого высокого уровня 1 до 0,6 μ х х 18.
  • Общие префиксы геохаша указывают на близость точек друг к другу. Чем длиннее общий префикс, тем ближе два места. Значение точности преобразуется в длину геохаша.
  • Геохаш — это прямоугольная область на поверхности плоскости.
  • Вызов функции geo_geohash_to_central_point() в строке геохаширования, вычисляемой по долготе x и широте y, не обязательно возвращает x и y.
  • Из-за определения геохашности возможно, что два географических расположения очень близки друг к другу, но имеют разные коды геохаша.

Геохашная прямоугольная область покрытия на значение точности:

Правильность Ширина Высота
1 5000 км 5000 км
2 1250 км 625 км
3 156,25 км 156,25 км
4 39.06 км 19,53 км
5 4,88 км 4,88 км
6 1,22 км 0,61 км
7 152,59 м 152,59 м
8 38,15 м 19.07 m
9 4,77 м 4,77 м
10 1,19 м 0,59 м
11 149,01 мм 149,01 мм
12 37,25 мм 18,63 мм
13 4,66 мм 4,66 мм
14 1,16 мм 0,58 мм
15 145.52 μ 145.52 μ
16 36.28 μ 18.19 μ
17 4.55 μ 4.55 μ
18 1.14 μ 0.57 μ

См. также geo_point_to_s2cell(), geo_point_to_h3cell().

Сравнение с другими доступными системами сетки см. в геопространственной кластеризации с язык запросов Kusto.

Примеры

Следующий пример находит события шторма США, агрегированные геохашом.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_geohash(BeginLon, BeginLat, 3)
| project geo_geohash_to_central_point(hash)
| render scatterchart with (kind=map)

Выходные данные

Снимок экрана: события шторма США, сгруппированные по геохашам.

В следующем примере вычисляется и возвращается строковое значение геохаша.

print geohash = geo_point_to_geohash(-80.195829, 25.802215, 8)

Выходные данные

геохаш
dhwfz15h

В следующем примере показано, как найти группы координат. Каждая пара координат в группе находится в прямоугольной области 4,88 км на 4,88 км.

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", double(-122.303404), 47.570482,
  "B", double(-122.304745), 47.567052,
  "C", double(-122.278156), 47.566936,
]
| summarize count = count(),                                          // items per group count
            locations = make_list(location_id)                        // items in the group
            by geohash = geo_point_to_geohash(longitude, latitude)    // geohash of the group

Выходные данные

геохаш count locations
c23n8 2 ["A", "B"]
c23n9 1 ["C"]

В следующем примере создается пустой результат из-за недопустимых входных данных координат.

print geohash = geo_point_to_geohash(200,1,8)

Выходные данные

геохаш

В следующем примере создается пустой результат из-за недопустимой точности ввода.

print geohash = geo_point_to_geohash(1,1,int(null))

Выходные данные

геохаш