проверка, находится ли точка в многоугольнике, давая нулевые значения - PullRequest
0 голосов
/ 10 апреля 2020

Есть много постов, относящихся к этому вопросу, но большинство из них старые, и, похоже, существует много разных способов сделать это.

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

вот мой код.

select ST_contains(ST_geomfromtext('
      Polygon((127.090656 37.517137, 
      127.092416 37.512525,
      127.098445 37.513836,
      127.095227 37.518346))'), Point(127.090656, 37.517137));

Заранее спасибо.

1 Ответ

0 голосов
/ 13 апреля 2020

В Mysql вам нужно закрыть многоугольник, поэтому я должен снова добавить первую точку в конце многоугольника.

select ST_contains(ST_geomfromtext('
      Polygon((**127.090656 37.517137**, 
      127.092416 37.512525,
      127.098445 37.513836,
      127.095227 37.518346,
      **127.090656 37.517137**))'), Point(127.090656, 37.517137));

, что теперь решает мою проблему

и для чистоты

Я могу установить полигон как

SET @location_1 = ST_geomfromtext('
      Polygon((**127.090656 37.517137**, 
      127.092416 37.512525,
      127.098445 37.513836,
      127.095227 37.518346,
      **127.090656 37.517137**))');

select ST_contains( @location_1, Point(127.090656, 37.517137));

, что для меня намного чище. Но, может быть, это потребует больше памяти для @ location_1 в дБ (я не уверен)?

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