Геопространственные функции Qlik Sense с примерами
Сегодня мы поговорим о геопространственных функциях QliK Sense. Геопространственные функции оценивают геопространственные данные, используя их в визуализациях карты. В Qlik Sense поддерживаются геометрии и следующие функции: точечная геометрия, геометрия линейных струн, геометрия многоугольника и геометрия мультимногоугольника.
Итак, давайте рассмотрим геопространственные функции Qlik Sense.
Геопространственные функции Qlik Sense с примерами
1. Что такое геопространственные функции в QliK Sense?
У геопространственных функций QliK Sense есть две категории: функции агрегирования и функции без агрегирования. Функции агрегирования геопространственных данных принимают набор геопространственных данных в качестве входных данных и возвращают один результат, который представляет собой агрегирование всех данных. Например, вы можете указать координаты нескольких областей, и функция вернет одну границу, объединяющую несколько границ.
В то время как неагрегируемые функции принимают отдельные точки данных в качестве входных и возвращают одно значение результата. В них нет агрегирования. Ниже представлены функции каждой категории.
2. Геопространственные функции с агрегированием QliK Sense
i. GeoAggrGeometry
Эта функция принимает в качестве входных данных ряд точек данных площади и возвращает агрегированную площадь, т.е. в результате большую площадь. Вы можете использовать несколько подрегионов или границ пригородных областей в качестве входных значений, и эта функция вернет совокупную границу или больший регион, суммируя границы подобластей или пригородов. Эта функция имеет большое значение, когда мы хотим проанализировать бизнес-границы на территории, состоящей из нескольких точек данных, поскольку эта функция применяет агрегирование ко всем отдельным точкам данных и возвращает территорию.
Синтаксис геопространственных функций QliK Sense -
GeoAggrGeometry(field_name)
где field_name – имя поля, которое содержит отдельные точки данных или значения, которые принимаются в качестве входных значений для агрегирования.
Например, в примере скрипта, представленном ниже, точки области для отдельных областей загружаются в поле world.Areas, которое агрегируется с помощью GeoAggrGeometry (world.Areas) из таблицы «worldareas», которая представляет собой файл KML. Функция вернет агрегированную площадь во вновь созданном поле под названием AggrArea. Кроме того, важно использовать предложение Group By в операторе загрузки данных.
[MapSource]: LOAD [world.Name], [world.Points], [world.Areas] FROM [lib://Downloads/worldareas.kml] (kml, Table is [Worldareas.shp/Features]); Map: LOAD world.Name, GeoAggrGeometry(world.Areas) as [AggrArea] resident MapSource Group By world.Name;
ii. GeoBoundingBox
Эта функция принимает несколько точек данных области и возвращает значение четырех координат, что составляет наименьшую ограничивающую рамку, или координаты, составляющие наименьший прямоугольник.
Синтаксис для геопространственных функций QliK Sense:
GetBoundingBox(field_name)
где field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, представляющих широту и долготу, то есть координаты точек области.
iii. GeoCountVertex
Эта функция возвращает количество вершин, присутствующих в геометрии многоугольника.
Синтаксис для геопространственных функций QliK Sense:
GetCountVertex(field_name)
где field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения – это набор точек, представляющих широту и долготу, то есть координаты точек области.
iv. GeoInvProjectGeometry
Эта функция возвращает инверсию проекции геометрии, изначально объединяющую данный набор точек данных.
Синтаксис для геопространственных функций QliK Sense:
GeoInvProjectGeometry(type, field_name)
Где, type – это тип проекции или геометрии, в которую будет преобразована существующая геометрия карты. Есть два типа проекций: «unit», которая устанавливается по умолчанию и возвращает проекцию 1:1, и «mercator», которая возвращает стандартную проекцию меркатора агрегированной области
field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, описывающих широту и долготу, то есть координаты точек области.
Например, в приведенном ниже фрагменте кода дан загруженный оператор, который содержит координаты области в поле «PolygonArea». Геометрия, содержащаяся в этом поле, преобразуется в обратную проекцию меркатора. Преобразованная геометрия затем сохраняется в поле «InvProjectGeometry».
v. GeoProjectGeometry
Эта функция применяет проекцию к геометрии, которая была агрегирована из заданного набора точек данных.
Синтаксис геопространственных функций QliK Sense:
GeoProjectGeometry(type, field_name)
Где, type – это тип проекции или геометрии, в которую будет преобразована существующая геометрия карты. Есть два типа проекций: «unit», которая устанавливается по умолчанию и возвращает проекцию 1:1, и «mercator», которая возвращает стандартную проекцию меркатора агрегированной площади.
field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, описывающих широту и долготу, то есть координаты точек области.
Например, в приведенном ниже фрагменте кода дан загруженный оператор, который содержит координаты области в поле «PolygonArea». Эта функция применит проекцию меркатора к геометрии агрегированных точек данных, заданных в поле «PolygonArea». Примененная проекция затем сохраняется в поле ProjectGeometry.
GeoInvProjectGeometry(‘mercator’,PolygonArea) как ProjectGeometry
vi. GeoReduceGeometry
Эта функция возвращает уменьшенную площадь большей области, созданную путем агрегирования нескольких точек данных. Границы отдельных областей все еще отображаются на карте даже после уменьшения области в целом.
Синтаксис геопространственных функций QliK Sense:
GeoReduceGeometry(field_name[, value])
где field_name – имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения – это набор точек, описывающих широту и долготу, то есть координаты точек области.
Value устанавливает величину уменьшения, которую вы хотите применить ко всей площади или геометрии. Вы можете использовать любое значение в диапазоне от 0 до 1, где 0 соответствует отсутствию снижения, а 1 соответствует максимальному снижению. Любое десятичное значение между этими двумя вызовет соответствующее ему уменьшение.
Например, в примере скрипта, приведенном ниже, точки области для отдельных областей загружаются в поле «world.Areas», которое уменьшается на 0,5 с помощью функции GeoReduceGeometry(world.Areas). Это поле существует в таблице «worldareas», которая представляет собой файл KML. Оно вернет агрегированную площадь во вновь созданном поле с именем «ReducedArea». Кроме того, важно использовать предложение Group By в операторе загрузки данных.
[MapSource]: LOAD [world.Name], [world.Points], [world.Areas] FROM [lib://Downloads/worldareas.kml] (kml, Table is [Worldareas.shp/Features]); Map: LOAD world.Name, GeoReduceGeometry(world.Areas,0.5)as [ReducedArea] resident MapSource Group By world.Name;
3. Неагрегационные геопространственные функции Qlik Sense
i. GeoGetBoundingBox
Эта функция вычисляет наименьшую возможную геопространственную ограничивающую рамку, охватывающую все координаты области или геометрии. Эта функция возвращает строку, имеющую четыре значения: правые, левые, верхние и нижние координаты ограничивающей рамки.
Синтаксис геопространственных функций QliK Sense:
GeoGetBoundingBox(field_name)
где field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, которые определяют широту и долготу, то есть координаты точек области.
Мы используем эту функцию в выражениях диаграмм и скриптов.
ii. GeoGetPolygonCenter
Эта функция возвращает строку, в которой имеется значение долготы и широты центра многоугольника или любой геометрической области/формы, заключенной в границы.
Синтаксис геопространственных функций QliK Sense:
GeoGetPolygonCenter(field_name)
где field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, которые определяют широту и долготу, то есть координаты точек области.
iii. GeoMakePoint
Эта функция возвращает точку на карте в соответствии со значениями широты и долготы, указанными в самой функции. Точки возвращаются с координатами, соответствующими долготе и широте в указанном порядке.
Синтаксис геопространственных функций QliK Sense:
GeoMakePoint(lat_field_name, lon_field_name)
где lat_field_name – это поле или выражение, которое предоставляет значения широты. lon_field_name – это поле или выражение, которое предоставляет значения долготы.
iv. GeoProject
Эта функция применяет проекцию к геометрии или области.
Синтаксис для геопространственных функций QliK Sense:
GeoProject(type, field_name)
где, type – это тип проекции или геометрии, в которую будет преобразована существующая геометрия карты. Есть два типа проекций: «unit», которая устанавливается по умолчанию и возвращает проекцию 1:1, и «mercator», которая возвращает стандартную проекцию меркатора агрегированной площади.
field_name – это имя поля, которое содержит все значения геопространственных данных, соответствующие области. Значения представляют собой набор точек, которые определяют широту и долготу, то есть координаты точек области.
Например, в приведенном ниже фрагменте кода дается оператор загрузки, который содержит координаты области в поле «Area». Эта функция применит проекцию меркатора к геометрии поля Area. Примененная проекция затем сохраняется в поле «GetProject».
GeoProject('mercator',Area) as GetProject