library(tidyverse)
library(leaflet)
library(httr)
library(fs)
library(glue)
<- "~/data/geonames/allCountries.zip"
gn_file
if (!file_exists(gn_file)) {
GET("http://download.geonames.org/export/dump/allCountries.zip",
write_disk(gn_file))
}
<- read_delim(
gn
gn_file, delim = "\t",
col_names = c("geonameid",
"name",
"asciiname",
"alternatenames",
"latitude",
"longitude",
"feature_class",
"feature_code",
"country_code",
"cc2",
"admin1_code",
"admin2_code",
"admin3_code",
"admin4_code",
"population",
"elevation",
"dem",
"timezone",
"modification_date"))
Day 4 of 30DayMapChallenge: « Bad map » (previously).
A map of all populated places containing the word “Bad” from Geonames.
<- gn |>
bad filter(str_detect(feature_code, "^PPL"),
str_detect(asciiname, "\\b[Bb]ad\\b"))
|>
bad leaflet() |>
addCircleMarkers(popup = ~ glue("{name} ({asciiname})<br />
<b>{country_code}</b><br />
{population} inhab.")) |>
addTiles(attribution = "Geonames and © OpenStreetMap, ODbL")
So we have 471 “Bad” populated places…