Перекресток Большого Круга MySQL (две дороги пересекаются?) - PullRequest
0 голосов
/ 05 января 2011

MySQL OpenGIS CROSSES не работает для меня:

SET @ls = 'LineString(1 1, 2 2, 3 3)';
SET @xx = 'LineString(0 2, 10 2)';

# SELECT AsText(EndPoint(GeomFromText(@ls)));
select crosses(GeomFromText(@ls), GeomFromText(@xx))

возвращает 0 - ожидается 1

Как бы я переписал это как функцию MySQL?

Бонусные баллы за использование широты, долготы и сферической проекции (и, возможно, Большого круга.)

PS Я не могу создать теги и потерял свой старый логин: Полезные теги: MySQL OpenGIS CROSSES greatcircle latlon -:)

Ответы [ 2 ]

1 голос
/ 05 января 2011

Просто используйте INTERSECTS (line1, line2)

SET @ls = 'LineString(1 0,1 2)';
SET @xx = 'LineString(0 1, 2 1)';
select INTERSECTS(GeomFromText(@ls), GeomFromText(@xx));
0 голосов
/ 07 января 2011

ОК, в конце концов, я только что реализовал это: http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/

...