Entschuldigung, ich kann einfach nicht widerstehen. Da es immer gut ist zu wissen, was mit so etwas wie GME unter der Haube vor sich geht, finden Sie hier eine Lösung im tatsächlichen R-Code.
require(sp)
require(rgeos)
# Create example polygon data
x <- readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
y <- readWKT("POLYGON ((3 3, 7 3, 7 7, 3 7, 3 3))")
# Calculate difference in polygon geometries to create null polygon
d <- gDifference(x,y)
# Create random sample in non-null polygon
rs <- spsample(d, 20, type="random")
# Plot results
plot(d, col="red")
plot(rs,pch=19,col="black",add=TRUE)
Dieser Ansatz unterscheidet sich wahrscheinlich stark von dem, wie GME dies tut, verwendet jedoch native R sp-Raumklassen und eine ziemlich neue Topologiebibliothek, wodurch der Code sehr effizient wird. Dies gibt auch ein Beispiel, das leicht in eine for-Schleife eingeschlossen werden kann.