Десятичные знаки в полигональной геометрии MySQL - PullRequest
4 голосов
/ 02 марта 2012

Я искал ключом к разгадке или даже к ответу на следующий вопрос и не нашел нигде, поэтому я спрашиваю здесь.

По сути, я пытаюсь заполнить столбец Geometry в MySQL полигоном. Но что бы я ни пытался, столбец получит значение NULL, а не то, что должно быть.

Мне кажется, что точки для многоугольника не могут содержать десятичные дроби, такие как широта и долгота, но это кажется совершенно нелогичным, если это действительно так! Что хорошего в этом типе, если вы не можете поместить в него данные о широте и долготе?!?!

По этой причине я спрашиваю, не пропустил ли я что-то простое. Вот что я должен показать:

SELECT GEOMFROMTEXT('POLYGON((52.29600522644751 0.05256918782038156,52.29168750609503 0.04999426716608468,52.29425981571103 0.06121662968439523))');

Возвращает:

(NULL)

Принимая во внимание, что если я создаю точечный тип геометрии:

SELECT GEOMFROMTEXT('POINT(52.29600522644751 0.05256918782038156)');

Возвращает пустое значение, которое фактически содержит точки X и Y.

Любая помощь будет принята с благодарностью.

1 Ответ

5 голосов
/ 14 апреля 2012

GEOMFROMTEXT возвращает ноль, если геометрия неверна.Линейное кольцо, которое вы используете для построения своего многоугольника, недопустимо.Точки начала и окончания кольца должны быть равны для завершения кольца.

Допустимый полигон в этом случае будет:

SELECT GEOMFROMTEXT('POLYGON((52.29600522644751 0.05256918782038156,52.29168750609503 0.04999426716608468,52.29425981571103 0.06121662968439523,52.29600522644751 0.05256918782038156))')

Возвращает ожидаемое значение вместо NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...