Доступные версии документации

Буферный геометрический объект

Функция

Получение буферного геометрического объекта (т. е. объекта, все точки которого равноудалены от заданного объекта).

Спецификация
  Buffer (<объект>,<расстояние>)
<объект> – геометрические объекты произвольного типа (кроме типа LINE – бесконечной прямой);
<расстояние> – положительное вещественное значение.
Возвращаемое значение
  1. В случае нормального завершения – геометрический объект, все точки которого расположены от <объекта> на заданное <расстояние>.

    Тип возвращаемого значения:

    • char для геометрического объекта типа VARBYTE. Длина строки вычисляется динамически и не может превышать 4000 символов;

    • blob для геометрического объекта типа BLOB. В этом случае для получения значения типа char необходимо использовать SQL-функцию getblobstr (см. документ «СУБД ЛИНТЕР. Справочник по SQL»);

    • NULL, если один или оба аргумента NULL.

  2. Код завершения СУБД ЛИНТЕР (при неправильном аргументе функции).

Пример

Получить буферный геометрический объект от отрезка линии VARBYTE-типа, например:

create or replace table test( line1 linestring);
insert into test(line1) values( linefromtext('linestring (1 0,5 0)'));
select astext(buffer(line1, 1)) from test;
Результат:
|POLYGON ((5 1,
1 1,
0.80491 0.980785,
0.617317 0.92388,
0.44443 0.83147,
0.292893 0.707107,
0.16853 0.55557,
0.07612 0.382683,
0.019215 0.19509,
0 0,
0.019215 -0.19509,
0.07612 -0.382683,
0.16853 -0.55557,
0.292893 -0.707107,
0.44443 -0.83147,
0.617317 -0.92388,
0.80491 -0.980785,
1 -1,
5 -1,
5.19509 -0.980785,
5.382683 -0.92388,
5.55557 -0.83147,
5.707107 -0.707107,
5.83147 -0.55557,
5.92388 -0.382683,
5.980785 -0.19509,
6 0,
5.980785 0.19509,
5.92388 0.382683,
5.83147 0.55557,
5.707107 0.707107,
5.55557 0.83147,
5.382683 0.92388,
5.19509 0.980785,
5 1))|
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter