RGEOS Experimental Functions | R Documentation |

Functions still under development using the GEOS STRtree structure to find intersecting object component envelopes (bounding boxes).

```
gUnarySTRtreeQuery(obj)
gBinarySTRtreeQuery(obj1, obj2)
poly_findInBoxGEOS(spl, as_points=TRUE)
```

`obj, obj1, obj2` |
Objects inheriting from either |

`spl` |
Object that inherits from the |

`as_points` |
Logical value indicating if the polygon should be treated as points |

`gUnarySTRtreeQuery`

and `poly_findInBoxGEOS`

do the same thing, but `poly_findInBoxGEOS`

uses the `as_points`

argument to build the input envelopes from proper geometries. `gUnarySTRtreeQuery`

and `gBinarySTRtreeQuery`

build input envelopes by disregarding topology and reducing the coordinates to a multipoint representation. This permits the tree to be built and queried even when some geometries are invalid. `gUnarySTRtreeQuery`

and `poly_findInBoxGEOS`

return a list of length `(n-1)`

of 1-based indices only for the “greater than i” indices. `gBinarySTRtreeQuery`

returns a list of the length of `obj2`

with 1-based indices of `obj1`

.

Roger Bivand & Colin Rundel

```
if (require(maptools)) {
xx <- readShapeSpatial(system.file("shapes/fylk-val-ll.shp",
package="maptools")[1], proj4string=CRS("+proj=longlat +datum=WGS84"))
a0 <- gUnarySTRtreeQuery(xx)
a0
nc1 <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
proj4string=CRS("+proj=longlat +datum=NAD27"))
a2 <- gUnarySTRtreeQuery(nc1)
#a3 <- poly_findInBoxGEOS(nc1)
#all.equal(a2, a3)
a2
pl <- slot(nc1, "polygons")[[4]]
a5 <- gUnarySTRtreeQuery(pl)
a5
SG <- Sobj_SpatialGrid(nc1, n=400)$SG
obj1 <- as(as(SG, "SpatialPixels"), "SpatialPolygons")
a4 <- gBinarySTRtreeQuery(nc1, obj1)
plot(nc1, col="orange", border="yellow")
plot(obj1, angle=sapply(a4, is.null)*45, density=20, lwd=0.5, add=TRUE)
set.seed(1)
pts <- spsample(nc1, n=10, type="random")
res <- gBinarySTRtreeQuery(nc1, pts)
}
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.