-----Original Message-----
From: R-sig-Geo <r-sig-geo-bounces at r-project.org> On Behalf Of Howard,
Tim G (DEC) via R-sig-Geo
Sent: Thursday, June 8, 2023 8:53 AM
To: Kevin Zembower <kevin at zembower.org>; r-sig-geo at r-project.org
Subject: Re: [R-sig-Geo] Adding Census polygons to OSM map?
ATTENTION: This email came from an external source. Do not open
attachments or click on links from unknown senders or unexpected emails.
Kevin,
To get the basemap in plot mode you need to download the tiles using
read_osm. This works for me, I Simplified a bit:
library(sf)
library(tmap)
library(tigris)
options(tigris_use_cache = TRUE)
library(tmaptools)
## Get an example census map:
rw_tract <- tracts(state = "MD",
county = "Baltimore city",
year = "2020")
rw_tract <- rw_tract[rw_tract$NAME == "2711.01",]
# for some reason had to re-jigger the box a bit.
# also note your longitudes were backwards.
lat_max <- 39.36
long_min <- -76.63
lat_min <- 39.34
long_max <- -76.60
bbox <- bb(c(xmin=long_min, ymin=lat_min, xmax=long_max,
ymax=lat_max))
basem <- read_osm(bbox)
tmap_mode("plot")
myMap <- tm_shape(basem) +
tm_rgb() +
tm_shape(rw_tract) +
tm_polygons(alpha = 0.2, col = "green") +
tm_scale_bar() +
tm_layout(title = "Radnor-Winston Neighborhood")
# check it out
myMap
# save it.
tmap_save(myMap, "c:/temp/myMapOut.jpg")
Hope that helps.
Tim
-----Original Message-----
From: Kevin Zembower <kevin at zembower.org>
Sent: Wednesday, June 7, 2023 5:59 PM
To: Howard, Tim G (DEC) <tim.howard at dec.ny.gov>; r-sig-geo at r-
project.org
Subject: Re: Adding Census polygons to OSM map?
ATTENTION: This email came from an external source. Do not open
attachments or click on links from unknown senders or unexpected emails.
Tim, thank you very much. Yes, tmap seems to be moving in the right
direction for me. This is what I can do with it so far:
=====================================
## Trying with tmap:
library(tidyverse)
library(sf)
library(tmap)
library(terra)
library(spData)
library(spDataLarge)
library(tigris)
options(tigris_use_cache = TRUE)
library(OpenStreetMap)
## Get an Open Street Map:
rw_map <- openmap(nw, se,
type = "osm",
mergeTiles = TRUE) %>%
openproj(projection = "+proj=longlat +ellps=WGS84 +datum=WGS84
+no_defs")
## Get an example census map:
rw_tract <- tracts(state = "MD",
county = "Baltimore city",
year = "2020") %>%
filter(NAME == "2711.01")
ttm()
## Quick Tmap; also works:
qtm(rw_tract)
## Also works. _polygons combines _fill and _borders:
tm_shape(rw_tract) +
tm_polygons()
## Works:
tm_shape(rw_tract) +
tm_polygons(alpha = 0.2, col = "green") +
tm_scale_bar() +
tm_layout(title = "Radnor-Winston Neighborhood") +
tm_basemap(server = "OpenStreetMap")
=======================================
So, in that last example, I can plot the basemap from Open Street Maps
with the Census tract on top of it. However, from what I've learned so
far (just about 4 hours of study), tm_basemap() only works with
interactive maps that are 'viewed' (in a browser as HTML) rather than
plotted (printed). I don't understand why I can't just get the
appearance I want without all the unwanted interactivity features.
To take it a step further, I don't understand why I can't just plot
both the basemap and the census tract with something like plot() (from
ggplot) and sf.
Thanks, again, Tim, for your suggestion. I think it's moving me in the
right direction.
-Kevin
On 6/7/23 10:57, Howard, Tim G (DEC) wrote:
Kevin,
the tmap? package might be what you are looking for.
https://cr/
an%2F&data=05%7C01%7Ctim.howard%40dec.ny.gov%7Cbe436282b0844b9c
a99a0
8db681f6989%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C6382182
5635
1940428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
2luMzIi
LCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=X4Cm12TD
2iIH498
sJlRMPzOFz7IX9XuVdhGX8%2FO0Lv4%3D&reserved=0
.r-project.org%2Fweb%2Fpackages%2Ftmap%2Fvignettes%2Ftmap-
tml&data=05%7C01%7Ctim.howard%40dec.ny.gov%7C4d3f99e6eeff4493a3a
7a26858%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C63821771946
9%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzI
Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MY4b3C%2Bqm7w
an%2F&data=05%7C01%7Ctim.howard%40dec.ny.gov%7Cbe436282b0844b9c
a99a0
8db681f6989%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C6382182
5635
1940428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
2luMzIi
LCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=X4Cm12TD
2iIH498
sJlRMPzOFz7IX9XuVdhGX8%2FO0Lv4%3D&reserved=0
.r-
project.org%2Fweb%2Fpackages%2Ftmap%2Findex.html&data=05%7C01%7
.howard%40dec.ny.gov%7C4d3f99e6eeff4493a3a108db67a26858%7Cf46cb8e
4d108ceb80e8c1c81ee7%7C0%7C0%7C638217719463933819%7CUnknown%7
b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn
%7C3000%7C%7C%7C&sdata=R61uJO4g0WW1GLh47uXGCB%2FX6%2B9grO4
%3D&reserved=0
Cheers,
Tim
From: R-sig-Geo <r-sig-geo-bounces at r-project.org> on behalf of Kevin
Zembower via R-sig-Geo <r-sig-geo at r-project.org>
Sent: Monday, June 5, 2023 11:21 AM
To: r-sig-geo at r-project.org <r-sig-geo at r-project.org>
Subject: [R-sig-Geo] Adding Census polygons to OSM map?
ATTENTION: This email came from an external source. Do not open
attachments or click on links from unknown senders or unexpected emails.
Hello, again,
I've given up my work with leaflet, trying to map my neighborhood
with US Census boundaries. Even though it was quick and easy to add
the Census boundaries to the map, I couldn't create the labels I
wanted (see
https://st/
at%2F&data=05%7C01%7Ctim.howard%40dec.ny.gov%7Cbe436282b0844b9c
a99a0
8db681f6989%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C6382182
5635
1940428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
2luMzIi
LCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=QJgBzdN0a
pmJ61x
gwFp8pY3WQLOSTjt2YVdJGX681q0%3D&reserved=0
.ethz.ch%2Fpipermail%2Fr-sig-geo%2F2023-
June%2F029284.html&data=05%7C01%7Ctim.howard%40dec.ny.gov%7C4d3f
99e6eeff4493a3a108db67a26858%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7
C0%7C0%7C638217719464245369%7CUnknown%7CTWFpbGZsb3d8eyJWIjoi
MC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C300
0%7C%7C%7C&sdata=pQUYMZs%2FRsLeotKUB0XduKCkpq6Ir0Vq3VPsAZ8eT
Yk%3D&reserved=0). Also, it seems like leaflet added a lot of overhead
that I didn't need, such as interactive maps. I just need a color
printed 2D map for my use.
I'm now trying to work with tigris and OpenStreetMap, but I can't
draw the US Census boundaries on the OSM map. Here's what I have so
==================================================
## Experiment, using sf:
library(tidyverse)
library(tigris)
options(tigris_use_cache = TRUE)
library(sf)
library(OpenStreetMap)
## library(sp)
## library(ggplot2)
lat_max <- 39.3525 #Distance from 39.35 to 39.34 = 0.691mi long_max
<-
-76.617 #Distance from -76.61 to -76.62 = 0.5343 mi lat_min <-
39.3455 long_min <- -76.6095 nw <- c(lat_max, long_max) se <-
c(lat_min,
long_min)
rw_map <- openmap(nw, se,
type = "osm",
mergeTiles = TRUE) %>%
openproj() %>%
OpenStreetMap::autoplot.OpenStreetMap() +
xlab("long") + ylab("lat")
rw_map
rw_tract <- tracts(state = "MD",
county = "Baltimore city",
year = "2020") %>%
filter(NAME == "2711.01")
## openproj()
## st_transform('+proj=longlat +datum=WGS84')
## spTransform('osm')
OpenStreetMap::autoplot.OpenStreetMap(rw_tract, add = TRUE)
==================================================
The commented out sections show some of the things I've tried so far.
I'd like to be able to draw the rw_tract geometry data on the rw_map
image. What I'd like is a 'addPolygon()' function in OpenStreetMap,
like I found in leaflet.
Can anyone offer me any suggestions or advice for accomplishing my