And I just realized an easier way to get a bounding box for the basemap is to use the spatial information you already have in the polygon:
basem <- read_osm(bb(rw_tract, ext = 1.5)) The 'ext' option allows you to expand a certain amount beyond the neighborhood polygon. You can modify it to your liking. And skip the lat/lon shenanigans. Cheers, Tim > -----Original Message----- > From: R-sig-Geo <r-sig-geo-boun...@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 <ke...@zembower.org>; r-sig-geo@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 <ke...@zembower.org> > > Sent: Wednesday, June 7, 2023 5:59 PM > > To: Howard, Tim G (DEC) <tim.how...@dec.ny.gov>; r-sig-geo@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- > > getstarted.h > > > > > > tml&data=05%7C01%7Ctim.howard%40dec.ny.gov%7C4d3f99e6eeff4493a3a > > 108db6 > > > > > > 7a26858%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C63821771946 > > 393381 > > > > > > 9%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzI > > iLCJBTiI6 > > > > > > Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MY4b3C%2Bqm7w > > ycxiX%2F3ww5 > > > zMLltw59fmCgQTAeSxGu60%3D&reserved=0 > > > > > > 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%2Findex.html&data=05%7C01%7 > > Ctim > > > > > > .howard%40dec.ny.gov%7C4d3f99e6eeff4493a3a108db67a26858%7Cf46cb8e > > a7900 > > > > > > 4d108ceb80e8c1c81ee7%7C0%7C0%7C638217719463933819%7CUnknown%7 > > CTWFpbGZs > > > > > > b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn > > 0%3D > > > > > > %7C3000%7C%7C%7C&sdata=R61uJO4g0WW1GLh47uXGCB%2FX6%2B9grO4 > > WYue3XxkfdQ0 > > > %3D&reserved=0 > > > > > > > > > Cheers, > > > Tim > > > > > > From: R-sig-Geo <r-sig-geo-boun...@r-project.org> on behalf of Kevin > > > Zembower via R-sig-Geo <r-sig-geo@r-project.org> > > > Sent: Monday, June 5, 2023 11:21 AM > > > To: r-sig-geo@r-project.org <r-sig-geo@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 > far: > > > > > > ================================================== > > > ## 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 > task? > > > Thanks so much. > > > > > > -Kevin > > > > > > _______________________________________________ > > > R-sig-Geo mailing list > > > R-sig-Geo@r-project.org > > > 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%2Fmailman%2Flistinfo%2Fr-sig- > > geo&data=05%7C01%7Ctim.howard%40 > > > > > > dec.ny.gov%7C4d3f99e6eeff4493a3a108db67a26858%7Cf46cb8ea79004d108c > > eb80 > > > > > > e8c1c81ee7%7C0%7C0%7C638217719464245369%7CUnknown%7CTWFpbGZs > > b3d8eyJWIj > > > > > > oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 > > 000%7C > > > > > > %7C%7C&sdata=RVBbcRMpZINzm0yoMZuwfisK575l3hiQzYSAUiG9U4E%3D&r > > eserved=0 > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@r-project.org > https://stat.e/ > thz.ch%2Fmailman%2Flistinfo%2Fr-sig- > geo&data=05%7C01%7Ctim.howard%40dec.ny.gov%7Cbe436282b0844b9ca9 > 9a08db681f6989%7Cf46cb8ea79004d108ceb80e8c1c81ee7%7C0%7C0%7C6382 > 18256351940428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sd > ata=%2FAyGIrey3G6HOOv3rWGC02L7LJCJ5NSaDnhqEvq8C2I%3D&reserved= > 0 _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo