# mapSpain 1.1.0

- Use `testthat::local_mocked_bindings()` on API error testing.
- Migrate vignettes to Quarto.
- Minimal **httr2** version is now **1.2.0** to ensure compatibility with
  **giscoR**.
- Query timeout can be controlled with `options(mapspain_timeout)` using
  `httr2::req_timeout()`. Default value is
  `httr2::req_timeout(..., seconds = 300)` (5 minutes).

# mapSpain 1.0.0

This major release introduces a full overhaul of the codebase and test suite.
Requests now use **httr2**, and cached files are reorganized into topic-based
subfolders for easier management.

> Because of internal changes, **existing caches are not compatible** with this
> release and must be rebuilt.

We have transitioned from `rappdirs::user_config_dir()` to `tools::R_user_dir()`
for managing your persistent cache directory. If you are a heavy **mapSpain**
user and already have a cache directory in place, you'll receive a one-time
friendly message informing you about this migration. Consider it a warm welcome
to **mapSpain** 1.0.0 😉.

The package now requires **R ≥ 4.1**, and dependency updates improve both
performance and maintainability. All functions return tidy objects (tibbles or
`sf` objects with tibble data).

Several new functions and arguments have been added, some functions renamed, and
some others deprecated. All bundled datasets have been updated to their latest
versions.

## Breaking changes

- Minimum required R version is now **4.1.0**.
- Removed dependency on **slippymath** (#126).
- `providerEspTileOptions()` has been removed; use
  `leaflet::providerTileOptions()` instead.
- Removed dataset `?esp_munic.sf`.
- Removed dataset `?leaflet.providersESP.df` (superseded in mapSpain
  **v0.8.0**).
- Removed dataset `?pobmun19`; it has been replaced by `?pobmun25`.
- `esp_get_grid_EEA()` is deprecated and defunct, as the source file is no
  longer available.

## Deprecations and new function names

- `esp_getTiles()` has been renamed to `esp_get_tiles()` (old name still
  works).
- `esp_get_country()` has been renamed to `esp_get_spain()` (old name still
  works).
- In `esp_get_rivers()`:
  - Arguments `resolution` and `spatialtype` are deprecated.
  - Wetlands support has been moved to the new `esp_get_wetlands()`
    function.

## New features

- Added `esp_get_stations()`, replacing
  `esp_get_railway(..., spatialtype = "point")`.
- Added `esp_siane_bulk_download()` to download all SIANE datasets to a
  specified `cache_dir` in a single step.
- Added `esp_get_countries_siane()` to retrieve all countries available in
  SIANE at a given date.
- Added `esp_get_spain_siane()`, analogous to `esp_get_spain()`, using SIANE
  data.
- Added `esp_get_attributions()` to retrieve the attributions of a tile
  provider.
- Added dataset `?esp_nuts_2024`, replacing `?esp_nuts.sf`.
- `esp_get_rivers()` gains a new `moveCAN` argument.
- `esp_get_tiles()` can be used with providers that needs an API key.

# mapSpain 0.10.0

- Fix a bug in `esp_get_prov_siane()` when selecting columns (#115).
- New argument `type` in `esp_get_comarca()`. Now it is possible to extract
  different types of comarcas: Official (IGN), statistical (INE), agrarian or
  livestock comarcas (MAPA).

# mapSpain 0.9.2

- **SIANE 2024 Update**: Adapt functions to new databases.
- Improve dictionaries: `esp_dict_region_code()` and `esp_dict_translate()`.

# mapSpain 0.9.1

- Update actions and docs.

# mapSpain 0.9.0

- Changes on how to handle modifications on Canary Islands objects (#101):
  - Add a helper function for displace stand-alone `sf` objects in Canary
    Islands: `esp_move_can()`.
  - `esp_move_can()` is used internally on all functions.
- Add a new function to show the current cache directory:
  `esp_detect_cache_dir()`.
- `mapSpain::layer_spatraster()` removed (was deprecated in **mapSpain**
  0.6.2).

# mapSpain 0.8.0

- Improve download of NUTS data from **giscoR**.
- Upgrade `?esp_tiles_providers` to
  <https://dieghernan.github.io/leaflet-providersESP/> v1.3.3. New providers
  included:
  - `IDErioja.Base`
  - `IDErioja.Relieve`
  - `IDErioja.Claro`
  - `IDErioja.Oscuro`
- `esp_getTiles()` now supports non-OGC compliant WMTS providers, such as
  Stamen or OpenStreetMaps (see examples).

# mapSpain 0.7.0

- Upgrade `?leaflet.providersESP.df` to
  <https://dieghernan.github.io/leaflet-providersESP/> v1.3.2.
- Changes on how to package manages tiles providers:
  - `?leaflet.providersESP.df` is superseded in favor of
    `?esp_tiles_providers`.
  - You can use a custom url with the `type` argument in `esp_getTiles()`
    (#88).
  - Add new function `esp_make_provider()` that helps to create custom
    providers.

# mapSpain 0.6.2

- Now `moveCAN` is a explicit argument in the relevant functions.
- Deprecate `layer_spatraster().` Use `tidyterra::geom_spatraster_rgb()`
  instead.
- Fix geometries on `esp_get_hex_prov()` and `esp_get_hex_ccaa()`.
- Add new function to get comarcas from INE: `esp_get_comarca()`.
- Add new functions to get simplified maps from INE:
  - `esp_get_simpl_prov()`.
  - `esp_get_simpl_ccaa()`.

# mapSpain 0.6.1

- HOTFIX: Bug on `esp_getTiles()` when `mask = TRUE`.

# mapSpain 0.6.0

- Upgrade `?leaflet.providersESP.df` to
  <https://dieghernan.github.io/leaflet-providersESP/> v1.3.0. New providers:
  - `Catastro.BuildingPart`
  - `Catastro.AdministrativeBoundary`
  - `Catastro.AdministrativeUnit`
- Add new param `options` to `esp_getTiles()`.
- Improve regex search on municipalities: Now the casing of the word is
  ignored.

# mapSpain 0.5.0

- Rebuild coding database to avoid errors due to encoding.
- Fix translations on Galician.
- New grid functions (#61):
  - `esp_get_grid_MTN()`
  - `esp_get_grid_BDN()`
  - `esp_get_grid_EEA()`
  - `esp_get_grid_ESDAC()`

# mapSpain 0.4.0

- Switch from **raster** to **terra**.
- Clean up dependencies. Imagery packages moved to 'Suggests'.
- Add `layer_spatraster()`.
- Move examples to **ggplot2**.

# mapSpain 0.3.1

- Fix an error on **CRAN** related with the cache folder #52:
  - Add `mapSpain::esp_clear_cache()`
- Update docs with `@family` tag.

# mapSpain 0.3.0

- Caching improvements: new function `esp_set_cache_dir()` based on
  `rappdirs::user_cache_dir()`. Now the cache_dir path is stored and it is not
  necessary to set it up again on a new session.
- Add a new argument `zoommin` on `esp_getTiles()`.
- New tests with **testthat**.
- Update on docs. New examples
- Precompute vignette.

# mapSpain 0.2.3

- Move minimum version of **giscoR** to v0.2.4
- Fix typos on `esp_dict_translate()` (#36).
- Not run examples on tiles, as the server sometimes doesn't respond.
- Re factor `sysdata.rda`.
- **CRAN** fixes:
  - Removed broken link on `addProviderEspTiles()`.
  - Vignette removed (**CRAN** warning).
- Now the `cache` directory is created recursively.

# mapSpain 0.2.2

- Migrate examples, vignettes and README to **tmap**.
- Add vignette to package.
- `esp_dict_region_code()` works with mixed casings (e.g:
  `esp_dict_region_code("aLbacEte", destination = "cpro")`).

# mapSpain 0.2.1

- **QUICKFIX**: Fix a typo on documentation: `cache_dir` should be set as
  `options(mapSpain_cache_dir = "path/to/dir")`.

# mapSpain 0.2.0

- Fix DOI <https://doi.org/10.5281/zenodo.4318024>
- Documentation ported to **roxygen2**.
- Include CartoBase ANE data
  <https://github.com/rOpenSpain/mapSpain/tree/sianedata>:
  - `mapSpain::esp_get_munic_siane()`
  - `mapSpain::esp_get_prov_siane()`
  - `mapSpain::esp_get_ccaa_siane()`
  - `mapSpain::esp_get_hypsobath()`
  - `mapSpain::esp_get_rivers()`
  - `mapSpain::esp_get_hydrobasin()`
  - `mapSpain::esp_get_capimun()`
  - `mapSpain::esp_get_roads()`
  - `mapSpain::esp_get_railway()`
- Mute warnings from **rgdal**.

# mapSpain 0.1.2

- Fix annoying warning if **sf** was not loaded first.
- Include new `poly` option on `mapSpain::esp_get_can_box()`.
- New grids created with `geogrid::calculate_grid()`.
- Add more years on `mapSpain::esp_get_munic()`.
- Move to rOpenSpain organization.

# mapSpain 0.1.1

- Fix **CRAN** submission.
- Added `mapSpain::esp_get_grid_prov()` and `mapSpain::esp_get_grid_ccaa()`.

# mapSpain 0.1.0

- Initial release.
