У меня установлен QGIS 2.18.16. Моя проблема заключается в том, как рассчитать радиус элемента дуги / кривой (линии)? Строки происходят из файла .dgn, который я прочитал с помощью FME и записал в базу данных PostGis. Я создал первичные ключи и т. Д., И таблица полностью редактируема. Я рассчитал длины для дуг успешно, но не могу понять, как рассчитать радиус для этих кривых. Это ( https://www.mathopenref.com/arcradius.html ) может дать некоторое представление о математике, хотя я не могу понять, как использовать его в калькуляторе QGIS. Поэтому мне нужно рассчитать «R» для всех строк, которые у меня есть в БД.
Ниже приведен пример. Мои данные имеют Дуги / Кривые в другой таблице, чем "нормальные" полилинии.
qgis
field-calculator
calculate-values
Sisuaski
источник
источник
Vertex Editor
при нажатииNode Tool
?Ответы:
Далее следуют слегка проверенные формулы, поэтому действуйте с осторожностью. Но следуя вместе с примером здесь: https://www.mathopenref.com/arcradius.html
Если у ваших дуг окружности есть вершина в средней точке вдоль дуги (на рисунке я говорю x1, y1), вы можете использовать ее вместе с начальной и конечной точками, чтобы вычислить длину хорды " W " и высоту « h » для получения радиуса «R» по следующей формуле:
и говорю
W =
а также
H =
в вашем диалоге выражений калькулятора полей вы получите это длинное уравнение для расчета радиуса:
R =
источник
$$W= \sqrt {(x_{-1} - x_0)^2 +(y_{-1}-y_0)^2}$$
$$H = \sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}$$
и$$R = \frac {\sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}} {2} + \frac {(x_{-1} - x_0)^2 +(y_{-1}-y_0)^2} {8 \sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}}$$
Как насчет извлечения радиуса при извлечении данных с помощью FME? Там у вас есть преобразователь ArcPropertyExtractor, который должен дать вам значения радиуса в атрибутах, готовых для установки в вашей базе данных PostGIS.
источник