Add or get bounding box
Value
bbox_add: an object of class jqson/character from jqr
bbox_get: a bounding box, of the form
[west, south, east, north]
for 2D or of the form[west, south, min-altitude, east, north, max-altitude]
for 3D
Details
Note that bbox_get
outputs the bbox if it exists, but
does not calculate it from the geojson. See geo_bbox
to calculate a bounding box. Bounding boxes can be 2D or 3D.
Examples
# make a polygon
x <- '{ "type": "Polygon",
"coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]
]
}'
(y <- polygon(x))
#> <Polygon>
#> no. lines: 1
#> no. holes: 0
#> no. nodes / line: 5
#> coordinates: [[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]]]
# add bbox - without an input, we figure out the 2D bbox for you
y %>% feature() %>% bbox_add()
#> {
#> "type": "Feature",
#> "properties": {
#>
#> },
#> "geometry": {
#> "type": "Polygon",
#> "coordinates": [
#> [
#> [
#> 100.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 0.0
#> ]
#> ]
#> ]
#> },
#> "bbox": [
#> 100,
#> 0,
#> 101,
#> 1
#> ]
#> }
## 2D bbox
y %>% feature() %>% bbox_add(c(100.0, -10.0, 105.0, 10.0))
#> {
#> "type": "Feature",
#> "properties": {
#>
#> },
#> "geometry": {
#> "type": "Polygon",
#> "coordinates": [
#> [
#> [
#> 100.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 0.0
#> ]
#> ]
#> ]
#> },
#> "bbox": [
#> 100,
#> -10,
#> 105,
#> 10
#> ]
#> }
## 3D bbox
y %>% feature() %>% bbox_add(c(100.0, -10.0, 3, 105.0, 10.0, 17))
#> {
#> "type": "Feature",
#> "properties": {
#>
#> },
#> "geometry": {
#> "type": "Polygon",
#> "coordinates": [
#> [
#> [
#> 100.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 0.0
#> ],
#> [
#> 101.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 1.0
#> ],
#> [
#> 100.0,
#> 0.0
#> ]
#> ]
#> ]
#> },
#> "bbox": [
#> 100,
#> -10,
#> 3,
#> 105,
#> 10,
#> 17
#> ]
#> }
# get bounding box
z <- y %>% feature() %>% bbox_add()
bbox_get(z)
#> [1] 100 0 101 1
## returns NULL if no bounding box
bbox_get(x)
#> NULL