【发布时间】:2019-12-11 10:25:28
【问题描述】:
我正在尝试创建英国一小部分地区的高质量地图,不会因使用投影而造成任何失真,并且添加了由文本和符号组成的标记。最终目标是写出一个 png 或 pdf 文件。可以在here 找到更早的相关问题。
我已经好几年没有在愤怒中使用过 R 了,我一直在通过一堆包试图找到合适的东西。 R 的传单很有希望,但是尽管我可以使用数据框中的列创建一个外观不错的地图、添加标记和改变标记的颜色等等,但我无法改变大小、颜色和文本labelOptions 参数中使用的偏移量。
以下可重现的示例显示了我可以实现的目标,以及我没有成功的地方。我希望文本标签的大小根据df.data$textsizes 列而变化。鉴于style 参数需要一个值对列表,这似乎很困难,而且到目前为止还没有任何效果。
如果我希望有人可以建议一种方法来让狡猾的labelOptions 屈服于我的意愿,或者提出一种完全不同的尝试方法。
require(leaflet)
require(magrittr)
df.entrynames <- c("Entry 1: Some text","Entry 2: More text")
df.lat <- c(51.509898,51.510736)
df.lon <- c(-0.1345093,-0.135190)
df.colors <-c("Blue","Red")
df.sizes <-c(36,12)
df.data <- data.frame(entrynames=df.entrynames,lat=df.lat,lon=df.lon,colors=df.colors,textsizes=df.sizes)
df.data$entrynames <- as.character(df.data$entrynames)
df.data$colors <- as.character(df.data$colors)
df.data$textsizes <- paste(df.data$textsizes,"px",sep="")
leaflet() %>% setView(lng = -0.134509, lat = 51.509898, zoom = 17) %>% addTiles() %>%
addCircleMarkers(data = df.data,
lat = ~lat, lng = ~lon,
label = df.data$entrynames,
color = df.data$colors,
labelOptions = labelOptions(noHide = TRUE,
style = list(
"color" = "gray30",
"font-family" = "serif",
"font-style" = "italic",
"box-shadow" = "3px 3px rgba(0,0,0,0.25)",
"font-size" = "14px",
"border-color" = "rgba(0,0,0,0.5)"
),
textOnly = FALSE,
offset=c(0,0)))
【问题讨论】:
-
labeloptions(textsize=~textsizes,...)? -
谢谢。这是我的第一个想法,但它似乎不起作用。
标签: r openstreetmap r-leaflet