Создание дыр в пространственных объектах в R

#r

#r

Вопрос:

Мне нужно создать отверстие в SpatialPolygonsDataFrame на основе меньшего полигона, который он полностью содержит.

Это иллюстрирует желаемый результат с использованием полигонов, созданных WKT:

 require(rgeos)
p = readWKT("POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))")
p = SpatialPolygonsDataFrame(p, data.frame(x=1))
plot(p, col='grey')
  

введите описание изображения здесь

Теперь предположим, что у нас есть следующий многоугольник без какой-либо геометрии отверстий, как мы можем вставить отверстие (т. Е. Без readWKT)? Я предполагаю, что это функция rgeos, но я не могу определить решение.

 poly = readWKT("POLYGON((1 1,5 1,5 5,1 5,1 1))")
hole = readWKT("POLYGON((2 2,2 3,3 3,3 2,2 2))")
  

Заранее спасибо.

Ответ №1:

 library(rgeos)
gDifference(poly, hole)
  

должен это сделать.