Редактировать: Это очень хакерский, но показывает, что это можно сделать в принципе. Я вручную добавил линейную линию, основанную на том, где был центроид Carteret. Техника захвата центроида, вдохновленная этим ответом .
Текст не будет отображаться под повернутым углом, если линия также не нанесена (я сделал линию невидимой с помощью alpha = 0
).
lic_bed_sf <- st_read('lic_bed_sf.gpkg')
lic_bed_sf$centroids <-
st_transform(lic_bed_sf, 29101) %>%
st_centroid() %>%
st_transform(., '+proj=longlat +ellps=WGS84 +no_defs')
carteretTest <- filter(lic_bed_sf, county_name == "Carteret")
carteretTest$geom <- st_sfc(sf::st_linestring(matrix(c(-76.2, -76.8, 35, 34.7), , 2)),crs = 4326)
tm_shape(lic_bed_sf) +
tm_polygons("density",
id = "county_name",
palette = "Blues",
border.col = "#555555") +
tm_layout(fontfamily = "Athelas",
legend.position = c("left", "bottom"),
legend.text.size = 0.8,
legend.text.fontface = "bold",
frame = F,
inner.margins = c(0.12, 0.05, 0.10, 0.05)) +
tm_scale_bar(text.size = 0.60) +
tm_shape(carteretTest) +
tm_lines(alpha = 0) +
tm_text("county_name",
size = 0.50,
fontfamily = "Kefa",
fontface = "bold",
along.lines = T)
![enter image description here](https://i.stack.imgur.com/7PW1u.png)