у меня есть ArratList<Segment>
(N сегментов - размер массива N), когда:Вычисление пересечения между линиями с GeoTools (Java)
public class Segment {
Node vertex_1;
Node vertex_2;
}
public class Node {
double latitude;
double longitude;
}
И одна статическая точка - точка начала. Как работать с GeoTools, чтобы получить ArrayList<boolean>
(размер N), где каждое значение истинно/ложно относительно вопроса:
Является ли 2 линии от места происхождения до обоих краев сегмента, пересекает некоторые другие сегменты на своем пути ? Примечание: сегменты достаточно близки друг к другу, поэтому здесь нет вопросов Great-circle
Например, здесь результат {true, false, false}, потому что красная линия от точки начала до второго края сегмента 1 пересекает на ее пути сегмента 3.
Этот вопрос похож на this Stackoverflow Q, но разница в том, что здесь я хочу работать с GeoTools вместо реализации алгоритма, который с участием перевода географических единиц измерения (широта/долгота) в полярную плоскость и выполнение некоторых математических вычислений, таких как кросс-продукты - не сложно, но имеет потенциал для ошибок, и если уже есть готовая библиотека с открытым исходным кодом, лучше использовать ее.
Поскольку этот вопрос с использованием ГИС-решения, он также задал вопрос в gis stackexchange.
Вам нужно будет переделать вашу проблему как точки и объект LineString, а затем сказать нам, где о ваших линиях на земном шаре, прежде чем мы сможем попытаться ответить на это. –
@iant 1. Точки находятся в радиусе 200 м (без большого круга и т. Д. Проблемы, если это то, что вы имеете в виду). 2. Я не ищу решение для кода, а не для алгоритмического решения вроде: конвертировать pojos в объекты GeoTools, затем ... Спасибо, – michael
@iant Я разместил этот маленький вопрос как предварительный для этого: http://stackoverflow.com/ вопросы/32565298/GeoTools-хау к Построй-точка-импорт-выпуск – michael