From 490cfd41d6b991197392c73313be37d9d9ba9521 Mon Sep 17 00:00:00 2001
From: Dewey Dunnington <dewey@fishandwhistle.net>
Date: Wed, 9 Oct 2024 22:12:47 -0500
Subject: [PATCH] readme update

---
 README.Rmd | 30 +++++++++++++++++++-----------
 README.md  | 37 +++++++++++++++++++++++--------------
 2 files changed, 42 insertions(+), 25 deletions(-)

diff --git a/README.Rmd b/README.Rmd
index bc16a2f5..ff1fa3a4 100644
--- a/README.Rmd
+++ b/README.Rmd
@@ -16,15 +16,15 @@ knitr::opts_chunk$set(
 # s2
 
 <!-- badges: start -->
-![R-CMD-check](https://github.com/r-spatial/s2/workflows/R-CMD-check/badge.svg)
-[![codecov](https://codecov.io/gh/r-spatial/s2/branch/master/graph/badge.svg)](https://app.codecov.io/gh/r-spatial/s2)
+[![R-CMD-check](https://github.com/r-spatial/s2/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-spatial/s2/actions/workflows/R-CMD-check.yaml)
+[![codecov](https://codecov.io/gh/r-spatial/s2/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-spatial/s2)
 [![CRAN](http://www.r-pkg.org/badges/version/s2)](https://cran.r-project.org/package=s2)
 [![Downloads](http://cranlogs.r-pkg.org/badges/s2?color=brightgreen)](https://www.r-pkg.org/pkg/s2)
 <!-- badges: end -->
 
 The s2 R package provides bindings to Google's [S2Geometry](http://s2geometry.io) library. The package exposes an API similar to Google's [BigQuery Geography API](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions), whose functions also operate on spherical geometries. Package [sf](https://cran.r-project.org/package=sf) uses this package by default for nearly all its geometrical operations on objects with ellipsoidal (unprojected) coordinates; in cases where it doesn't, such as `st_relate()`, it emits a warning.
 
-This package is a complete rewrite of an earlier CRAN package s2 with versions up 
+This package is a complete rewrite of an earlier CRAN package s2 with versions up
 to 0.4-2, for which the sources are found [here](https://github.com/spatstat/s2/).
 
 ## Installation
@@ -42,6 +42,14 @@ And the development version from [GitHub](https://github.com/) with:
 remotes::install_github("r-spatial/s2")
 ```
 
+The S2 package requires [Abseil]() and OpenSSL. You can install these using a system package manager on most platforms:
+
+- Windows: Both OpenSSL and Abseil are available from RTools since R 4.3
+- MacOS: `brew install openssl abseil`
+- Debian/Ubuntu: `apt-get install libssl-dev libabsl-dev`
+- Fedora: `dnf install openssl-devel abseil-cpp-devel`
+- Alpine: `apk add abseil-cpp`
+
 ## Example
 
 The s2 package provides geometry transformers and predicates similar to those found in [GEOS](https://trac.osgeo.org/geos/), except instead of assuming a planar geometry, s2's functions work in latitude and longitude and assume a spherical geometry:
@@ -63,9 +71,9 @@ The [sf package](https://r-spatial.github.io/sf/) uses s2 for geographic coordin
 library(dplyr)
 library(sf)
 
-nc_s2 <- read_sf(system.file("shape/nc.shp", package = "sf")) %>% 
-  mutate(geometry = as_s2_geography(geometry)) %>% 
-  as_tibble() %>% 
+nc_s2 <- read_sf(system.file("shape/nc.shp", package = "sf")) %>%
+  mutate(geometry = as_s2_geography(geometry)) %>%
+  as_tibble() %>%
   select(NAME, geometry)
 
 nc_s2
@@ -74,7 +82,7 @@ nc_s2
 Use accessors to extract information about geometries:
 
 ```{r}
-nc_s2 %>% 
+nc_s2 %>%
   mutate(
     area = s2_area(geometry),
     perimeter = s2_perimeter(geometry)
@@ -84,22 +92,22 @@ nc_s2 %>%
 Use predicates to subset vectors:
 
 ```{r}
-nc_s2 %>% 
+nc_s2 %>%
   filter(s2_contains(geometry, "POINT (-80.9313 35.6196)"))
 ```
 
 Use transformers to create new geometries:
 
 ```{r}
-nc_s2 %>% 
+nc_s2 %>%
   mutate(geometry = s2_boundary(geometry))
 ```
 
 Finally, use the WKB or WKT exporters to export to sf or some other package:
 
 ```{r}
-nc_s2 %>% 
-  mutate(geometry = st_as_sfc(s2_as_binary(geometry))) %>% 
+nc_s2 %>%
+  mutate(geometry = st_as_sfc(s2_as_binary(geometry))) %>%
   st_as_sf()
 ```
 
diff --git a/README.md b/README.md
index 6b958e2a..41172202 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,8 @@
 
 <!-- badges: start -->
 
-![R-CMD-check](https://github.com/r-spatial/s2/workflows/R-CMD-check/badge.svg)
-[![codecov](https://codecov.io/gh/r-spatial/s2/branch/master/graph/badge.svg)](https://app.codecov.io/gh/r-spatial/s2)
+[![R-CMD-check](https://github.com/r-spatial/s2/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-spatial/s2/actions/workflows/R-CMD-check.yaml)
+[![codecov](https://codecov.io/gh/r-spatial/s2/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-spatial/s2)
 [![CRAN](http://www.r-pkg.org/badges/version/s2)](https://cran.r-project.org/package=s2)
 [![Downloads](http://cranlogs.r-pkg.org/badges/s2?color=brightgreen)](https://www.r-pkg.org/pkg/s2)
 <!-- badges: end -->
@@ -41,6 +41,15 @@ And the development version from [GitHub](https://github.com/) with:
 remotes::install_github("r-spatial/s2")
 ```
 
+The S2 package requires [Abseil]() and OpenSSL. You can install these
+using a system package manager on most platforms:
+
+- Windows: Both OpenSSL and Abseil are available from RTools since R 4.3
+- MacOS: `brew install openssl abseil`
+- Debian/Ubuntu: `apt-get install libssl-dev libabsl-dev`
+- Fedora: `dnf install openssl-devel abseil-cpp-devel`
+- Alpine: `apk add abseil-cpp`
+
 ## Example
 
 The s2 package provides geometry transformers and predicates similar to
@@ -69,9 +78,9 @@ using `as_s2_geography()`:
 library(dplyr)
 library(sf)
 
-nc_s2 <- read_sf(system.file("shape/nc.shp", package = "sf")) %>% 
-  mutate(geometry = as_s2_geography(geometry)) %>% 
-  as_tibble() %>% 
+nc_s2 <- read_sf(system.file("shape/nc.shp", package = "sf")) %>%
+  mutate(geometry = as_s2_geography(geometry)) %>%
+  as_tibble() %>%
   select(NAME, geometry)
 
 nc_s2
@@ -88,13 +97,13 @@ nc_s2
 #>  8 Gates       POLYGON ((-76.46035 36.3738976, -76.5024643 36.4522858, -76.4983…
 #>  9 Warren      POLYGON ((-78.1347198 36.2365837, -78.1096268 36.2135086, -78.05…
 #> 10 Stokes      POLYGON ((-80.0240555 36.5450249, -80.0480957 36.5471344, -80.43…
-#> # … with 90 more rows
+#> # ℹ 90 more rows
 ```
 
 Use accessors to extract information about geometries:
 
 ``` r
-nc_s2 %>% 
+nc_s2 %>%
   mutate(
     area = s2_area(geometry),
     perimeter = s2_perimeter(geometry)
@@ -112,13 +121,13 @@ nc_s2 %>%
 #>  8 Gates       POLYGON ((-76.46035 36.3738976, -76.5024643 36.… 9.03e8   123170.
 #>  9 Warren      POLYGON ((-78.1347198 36.2365837, -78.1096268 3… 1.18e9   141073.
 #> 10 Stokes      POLYGON ((-80.0240555 36.5450249, -80.0480957 3… 1.23e9   140583.
-#> # … with 90 more rows
+#> # ℹ 90 more rows
 ```
 
 Use predicates to subset vectors:
 
 ``` r
-nc_s2 %>% 
+nc_s2 %>%
   filter(s2_contains(geometry, "POINT (-80.9313 35.6196)"))
 #> # A tibble: 1 × 2
 #>   NAME    geometry                                                              
@@ -129,7 +138,7 @@ nc_s2 %>%
 Use transformers to create new geometries:
 
 ``` r
-nc_s2 %>% 
+nc_s2 %>%
   mutate(geometry = s2_boundary(geometry))
 #> # A tibble: 100 × 2
 #>    NAME        geometry                                                         
@@ -144,15 +153,15 @@ nc_s2 %>%
 #>  8 Gates       LINESTRING (-76.46035 36.3738976, -76.5024643 36.4522858, -76.49…
 #>  9 Warren      LINESTRING (-78.1347198 36.2365837, -78.1096268 36.2135086, -78.…
 #> 10 Stokes      LINESTRING (-80.0240555 36.5450249, -80.0480957 36.5471344, -80.…
-#> # … with 90 more rows
+#> # ℹ 90 more rows
 ```
 
 Finally, use the WKB or WKT exporters to export to sf or some other
 package:
 
 ``` r
-nc_s2 %>% 
-  mutate(geometry = st_as_sfc(s2_as_binary(geometry))) %>% 
+nc_s2 %>%
+  mutate(geometry = st_as_sfc(s2_as_binary(geometry))) %>%
   st_as_sf()
 #> Simple feature collection with 100 features and 1 field
 #> Geometry type: GEOMETRY
@@ -172,7 +181,7 @@ nc_s2 %>%
 #>  8 Gates       POLYGON ((-76.46035 36.3739, -76.50246 36.45229, -76.49834 36.50…
 #>  9 Warren      POLYGON ((-78.13472 36.23658, -78.10963 36.21351, -78.05835 36.2…
 #> 10 Stokes      POLYGON ((-80.02406 36.54502, -80.0481 36.54713, -80.43531 36.55…
-#> # … with 90 more rows
+#> # ℹ 90 more rows
 ```
 
 ## Acknowledgment