Я борюсь с MySQL геометрическими функциями. Я действительно хочу нарисовать многоугольник из разных таблиц в моей базе данных. Но я не могу понять это.
Сначала следующий код возвращает «многоугольник (-10 -5, -10 5,10,5, -10 -5)», который для меня выглядит как функция замкнутого многоугольника с четырьмя точками.
set @n_Yval = -5;
set @p_Yval = +5;
set @n_Xval = -10;
set @p_Xval = +10;
SET @text = (concat('polygon (', @n_Xval, ' ', @n_Yval, ', ', @n_Xval, ' ', @p_Yval, ', ', @p_Xval, ' ', @p_Yval, ',', @n_Xval, ' ', @n_Yval, ')'));
select @text;
Однако следующее возвращает «Код ошибки 3037 Недопустимые данные ГИС для функции st_geometryfrom text»
set @n_Yval = -5;
set @p_Yval = +5;
set @n_Xval = -10;
set @p_Xval = +10;
SET @text = (concat('polygon (', @n_Xval, ' ', @n_Yval, ', ', @n_Xval, ' ', @p_Yval, ', ', @p_Xval, ' ', @p_Yval, ',', @n_Xval, ' ', @n_Yval, ')'));
set @poly = polygonfromtext(@text);
Я использую MySQL 5.7, и было указано, что возможно быть ошибки с геометрическими функциями, когда я пытался рисовать линии, используя точки в предыдущем посте. https://bugs.mysql.com/bug.php?id=80697. Если так, кто-нибудь знает обходной путь?