Небольшое вступление: я хочу ограничить рисование внутри существующих многоугольников, используя взаимодействие привязки на ограничивающем слое.
Я реализовал условие при взаимодействии отрисовки, которое проверяет, доступны ли функции ограниченного источника, и если они, то позволяют рисовать внутри него.
Он работает нормально, но слишком ограничивает. (например, если я хочу нарисовать многоугольник на существующих границах или хочу рисовать внутри многоугольника, используя существующие границы).
Пример ниже:
new Draw({
condition: (e) => {
let coords = e.coordinate
let features = restrictionSource.getFeaturesAtCoordinate(coords);
if (features.length > 0) {
return true;
} else {
return false;
}
},
type: "Polygon",
source: vectorDrawLayer.getSource(),
style: styleDuringDraw
});
Я обнаружил странное поведение при рисовании внутри ограничивающего многоугольника. По некоторым краям я могу щелкнуть, по другим - нет.
В живом примере ниже:
https://stackblitz.com/edit/js-txi1es
Я не могу начать рисовать с внутреннего края правого нижнего угла (а также верхнего угла), где взаимодействие с привязкой по какой-то причине не работает. У меня есть случай, когда мне нужно нарисовать область многоугольника, которая использует всю область ограничивающего многоугольника, но я не могу этого сделать, потому что мой подход немного ограничен.
Мне интересно, доступен или рекомендован какой-либо другой подход в таких случаях.