Пространственные функции

С помощью пространственных функций можно преобразовать данные так, чтобы их можно было использовать для создания картосхем.

Если в файле фигур содержится информация о карте, использовать пространственные функции не нужно. Однако если географические данные находятся в столбце больших двоичных объектов какого-либо другого типа, содержащем данные в формате WKB, то эту информацию необходимо извлечь в семь разных столбцов:

  • Геометрия
  • XMax;
  • XMin;
  • YMax;
  • YMin;
  • XCenter;
  • YCenter.
Прим.: Столбец Geometry является исходным двоичным столбцом.

Граничная рамка геометрии называется очертаниями. Она задается четырьмя координатами XMax, XMin, YMax и YMin. Центр геометрии задается двумя координатами: XCenter и YCenter. Вычислить эти столбцы координат по двоичному столбцу WKB можно с помощью пространственных функций, которым двоичный столбец WKB передается в качестве аргумента. Для того чтобы картосхема могла определить эти столбцы, они также должны иметь соответствующие значения свойства mapchart.columntypeid (такие же, как у приведенных выше столбцов). Выполняется это автоматически при применении пространственных функций.

Функция Описание
GreatCircleDistance(Arg1, Arg2, Arg3, Arg4) Возвращает кратчайшее расстояние между двумя точками, вычисленное по поверхности единичной сферы. Аргументы — это долгота и широта координат (lat1, long1, lat2, long2), выраженные в градусах.

Для получения результата в определенных единицах умножьте результат, полученный от метода GreatCircleDistance, на радиус нужной сферы, выраженный в соответствующих единицах. Например, радиус Земли составляет около 6371 км (3959 миль), поэтому в первом примере ниже расстояние между двумя городами указано в километрах, а во втором — в милях.

Примеры.

6371*GreatCircleDistance(57.717829, 11.990509, 42.355145, -71.057892)

3959*GreatCircleDistance(57.717829, 11.990509, 42.355145, -71.057892)

6371*GreatCircleDistance([Latitude], [Longitude], 42.355145, -71.057892)

WKBEnvelopeXCenter(Arg1) Вычисляет центр X геометрического очертания и задает значение XCenter свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeXCenter([WKB])

WKBEnvelopeXMin(Arg1) Вычисляет мин. X геометрического очертания и задает значение XMin свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeXMin([WKB])

WKBEnvelopeXMax(Arg1) Вычисляет макс. X геометрического очертания и задает значение XMax свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeXMax([WKB])

WKBEnvelopeYCenter(Arg1) Вычисляет центр Y геометрического очертания и задает значение YCenter свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeYCenter([WKB])

WKBEnvelopeYMin(Arg1) Вычисляет мин. Y геометрического очертания и задает значение YMin свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeYMin([WKB])

WKBEnvelopeYMax(Arg1) Вычисляет макс. Y геометрического очертания и задает значение YMax свойству mapchart.columntypeid. Аргумент является столбцом WKB.

Пример.

WKBEnvelopeYMax([WKB])

Также см. раздел Функции.