Отсутствует область пересечения для географических координат с помощью ускоренной геометрии - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно проверить, находятся ли две точки (координаты GPS) q, m на одной стороне или на противоположной стороне, или линеарны линии (сегмент большого круга) (p,t).Я знаю, что q не совпадает с (p, t).Я не нашел и никакой прямой функции для использования в библиотеке boost.geometry.Поэтому я попытался рассчитать это по-другому.

Я строю два треугольника (p, q, t) и (p, m, t).Затем я пересекаю эти два и проверяю площадь полигона пересечения.Вот мой кодв пересекаемой области.

enter image description here

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

3
0

Я пытался использовать geographic вместо spherical_equatorial системы координат.Но получил те же результаты.Я что-то пропустил ?или это проблема в Boost.Geometry

1 Ответ

0 голосов
/ 27 ноября 2018

Чтобы убедиться, что полигоны замкнуты и ориентированы по мере необходимости, примените правильный .Вставка

boost::geometry::correct(ut);
boost::geometry::correct(es);

дает результат 1 полигон для вашего теста

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