R / Shiny: Как обнаружить перекрывающиеся маркеры круга? - PullRequest
0 голосов
/ 14 июня 2019

Я использую Leaflet и Shiny с маркерами круга.Попытка выяснить, как определить, перекрывается ли круговой маркер с одним или несколькими маркерами.Мне нужно установить цвет каждого маркера в зависимости от того, перекрываются они или нет.Кто-нибудь из вас делал что-то подобное раньше?Благодарен за любые предложения:)

1 Ответ

0 голосов
/ 14 июня 2019

Вы можете использовать аккумулятор.Представьте пустое пространство в виде матрицы m размером 0, поэтому каждая ячейка матрицы представляет одну точку с наименьшей зернистостью (например, пиксель).Теперь отметьте положение вашей маркировки в аккумуляторе с 1. Если вы берете сумму матрицы, в этой точке должно быть 1. Теперь для всех точек, которые будут включены в ваш круг, отметьте 1 на том же аккумуляторе.Теперь проверьте сумму накопителя, если она равна количеству точек в круге + 1, круг не покрывает точку, а если равен только количеству точек, круг находится внутри маркера.

Редактировать: Если вы хотите искать перекрытия: вместо того, чтобы просто устанавливать точки в 1, увеличивайте точки на 1 для каждого объекта, включающего его.Таким образом, число кругов перекрытия будет равно 2, а тройное перекрытие будет равно 3 и т. Д. Затем вы можете найти их, выполнив поиск локального или глобального максимума или минимумов.

...