---
title: "Introduction"
output: rmarkdown::html_vignette
author: "Richard Aubrey White, Chi Zhang"
date: "2023-05-30"
vignette: >
  %\VignetteIndexEntry{Introduction}
  %\VignetteEncoding{UTF-8}
  %\VignetteEngine{knitr::rmarkdown}
editor_options:
  chunk_output_type: console
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

`csmaps` ships the geometry of Norway as plain `data.table` objects, so you can
draw choropleth maps with ggplot2 alone, without `sf`, GDAL, or any other
geo-library. It is part of the [Core Surveillance](https://niphr.github.io)
family of R packages, and covers counties, municipalities, and Oslo's city wards
across four redistricting years (2017, 2019, 2020, and 2024).

## Setup

Load csmaps alongside ggplot2 and data.table:

```{r setup}
library(csmaps)
library(ggplot2)
library(data.table)
library(magrittr)
```

## A first map

Every map is a `data.table` of polygon coordinates, so you can hand it straight
to `geom_polygon()`. Here is the municipality map for the 2024 borders:

```{r fig.height=6, fig.width=6}
pd <- copy(csmaps::nor_municip_map_b2024_default_dt)
q <- ggplot()
q <- q + geom_polygon(
  data = pd,
  aes(
    x = long,
    y = lat,
    group = group
  ),
  color="black",
  fill="white",
  linewidth = 0.2
)
q <- q + theme_void()
q <- q + coord_quickmap()
q <- q + labs(title = "Default layout")
q
```

The same code draws the counties; only the dataset changes:

```{r fig.height=6, fig.width=6}
pd <- copy(csmaps::nor_county_map_b2024_default_dt)
q <- ggplot()
q <- q + geom_polygon(
  data = pd,
  aes(
    x = long,
    y = lat,
    group = group
  ),
  color="black",
  fill="white",
  linewidth = 0.4
)
q <- q + theme_void()
q <- q + coord_quickmap()
q <- q + labs(title = "Default layout")
q
```

## Where to next

For a split north/south view or an inset that enlarges Oslo, see the
*layout* vignette. To shade regions by your own numbers, see *customization*.
The full list of datasets lives in the [reference](../reference/index.html).
