Get geotagged images from the Spanish Cadastre. This function is a wrapper of
mapSpain::esp_get_tiles().
Usage
catr_wms_get_layer(
x,
srs = NULL,
what = c("building", "buildingpart", "parcel", "zoning", "address", "admboundary",
"admunit"),
styles = "default",
update_cache = FALSE,
cache_dir = NULL,
verbose = FALSE,
crop = FALSE,
options = NULL,
...
)Arguments
- x
See Details. It could be:
A numeric vector of length 4 with the coordinates that defines the bounding box:
c(xmin, ymin, xmax, ymax)A
sf/sfcobject, as provided by the sf package.
- srs
SRS/CRS to use on the query. To check the admitted values check catr_srs_values, specifically the
wfs_servicecolumn. See Details.- what
Layer to be extracted, see Details.
- styles
Style of the WMS layer. See Details.
- update_cache
logical. Should the cached file be refreshed? Default is
FALSE. When set toTRUEit would force a new download.- cache_dir
A path to a cache directory. On
NULLthe function would store the cached files on a temporary dir (Seebase::tempdir()).- verbose
logical. If
TRUEdisplays informational messages.- crop
logical. If
TRUE, the results will be cropped to the specifiedxextent. Ifxis ansfobject with onePOINT,cropis set toFALSE. Seeterra::crop().- options
A named list containing additional options to pass to the query.
- ...
Arguments passed on to
mapSpain::esp_get_tilesrescharacter string or number. Only valid for WMS providers. Resolution (in pixels) of the final tile.
bbox_expandnumber. Expansion percentage of the bounding box of
x.transparentlogical. Provides transparent background, if supported.
masklogical.
TRUEif the result should be masked tox. Seeterra::mask().
Value
A SpatRaster is returned, with 3 (RGB) or 4 (RGBA) layers,
see terra::RGB().
Details
When x is a numeric vector, make sure that the srs matches the
coordinate values. When x is a sf object, the value
srs is ignored.
The query is performed using EPSG:3857 (Web Mercator)
and the tile is projected back to the SRS of x. In
case that the tile looks deformed, try either providing x or specify the
SRS of the requested tile via the srs parameter, that ideally would need
to match the SRS of x. See Examples.
Layers
The parameter what defines the layer to be extracted. The equivalence with
the
API Docs
equivalence is:
"parcel": CP.CadastralParcel"zoning": CP.CadastralZoning"building": BU.Building"buildingpart": BU.BuildingPart"address": AD.Address"admboundary": AU.AdministrativeBoundary"admunit": AU.AdministrativeUnit
Styles
The WMS service provides different styles on each layer (what parameter).
Some of the styles available are:
"parcel": styles :"BoundariesOnly","ReferencePointOnly","ELFCadastre"."zoning": styles :"BoundariesOnly","ELFCadastre"."building","buildingpart":"ELFCadastre""address":"Number.ELFCadastre""admboundary","admunit":"ELFCadastre"
Check the API Docs for more information.
See also
mapSpain::esp_get_tiles() and terra::RGB(). For plotting see
terra::plotRGB() and tidyterra::geom_spatraster_rgb().
INSPIRE API functions:
catr_atom_get_address(),
catr_atom_get_address_db_all(),
catr_atom_get_buildings(),
catr_atom_get_buildings_db_all(),
catr_atom_get_parcels(),
catr_atom_get_parcels_db_all(),
catr_wfs_get_address_bbox(),
catr_wfs_get_buildings_bbox(),
catr_wfs_get_parcels_bbox(),
inspire_wfs_get()
Other spatial:
catr_atom_get_address(),
catr_atom_get_buildings(),
catr_atom_get_parcels(),
catr_wfs_get_address_bbox(),
catr_wfs_get_buildings_bbox(),
catr_wfs_get_parcels_bbox()
Examples
# \donttest{
# With a bbox
pict <- catr_wms_get_layer(
c(222500, 4019500, 223700, 4020700),
srs = 25830,
what = "parcel"
)
library(mapSpain)
library(ggplot2)
library(tidyterra)
#>
#> Attaching package: ‘tidyterra’
#> The following object is masked from ‘package:stats’:
#>
#> filter
ggplot() +
geom_spatraster_rgb(data = pict)
# With a spatial object
parcels <- catr_wfs_get_parcels_neigh_parcel("3662303TF3136B", srs = 25830)
# Use styles
parcels_img <- catr_wms_get_layer(parcels,
what = "buildingpart",
srs = 25830, # As parcels object
bbox_expand = 0.3,
styles = "ELFCadastre"
)
ggplot() +
geom_sf(data = parcels, fill = "blue", alpha = 0.5) +
geom_spatraster_rgb(data = parcels_img)
# }
