Задача о совпадении разностных функций торфа - PullRequest
0 голосов
/ 14 января 2020

Синяя область создана пользователем, розовая - это пересекаемая область, которую необходимо удалить из синей области Результат, когда пользователь не привязывается к существующему многоугольнику Пользователь щелкнул После обработки правильного результата Я боролся с этой проблемой в течение нескольких дней. Это мое первое приложение Turf / Leaflet. Поэтому я буквально взял некоторые данные и начал обрабатывать их с помощью Turf. Мне интересно, связаны ли мои проблемы с проблемами точности. Есть ли какое-то правило для десятичных разрядов с вводом и выводом данных из газона?

Инструмент, который я создаю, позволяет пользователю рисовать многоугольник в листовке (я использую библиотеку geoman для рисования, главным образом потому что это позволяет щелкать и создавать отверстия многоугольника). Если этот новый многоугольник пересекает любые существующие многоугольники. У пользователя спрашивают, перезаписать ли он sh существующий многоугольник или нет? Полигоны не могут находиться друг над другом.

За кулисами я беру новый многоугольник и бегу пересекаться с чем-либо под ним. Я добавляю эти пересекающиеся полигоны в коллекцию объектов. Если пользователь не хочет перезаписывать многоугольник внизу, то этот многоугольник или часть многоугольника должны быть вычтены из созданного пользователем многоугольника. Идеальное использование команды Разница в Turf.

Это приложение для тех, кто не знает о создании данных. Если пользователь привязывает новый многоугольник к краям существующих многоугольников. Моя функция разницы в целом работает хорошо, но иногда не идеально. Если пользователь не делает этого, я обычно получаю ложные данные в результатах (см. «Результат, когда пользователь не привязывается к существующему многоугольнику» выше). Мне бы очень хотелось, чтобы пользователю не приходилось привязывать функции, поскольку они, вероятно, забудут.

...