maps::map() 返回区域名称而不是国家/地区名称
maps::map() returning region names instead of country names
我正在尝试在传单地图上为每个国家/地区创建一个弹出窗口,显示国家/地区名称和数字。我在堆栈交换中遇到了类似的问题。
country <- c("Austria", "Germany", "Slovakia", "Hungary", "Croatia")
# Wanted only five countries
bounds <- map("world", country, fill = TRUE, plot = FALSE)
bounds$value <- c(300, 4, 8, 1, 8)
# Producing leaflet map
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", bounds$names, "<br>",
"Value: ",bounds$value, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))
制作地图时,弹出窗口显示错误的数字,然后我继续查看 bounds$names
的样子,我看到国家的前五个名称如下:
“奥地利”“德国:乌泽多姆”“德国:费马恩”“德国:鲁根”“德国:4”
地图本身仍在显示我想要的国家/地区的弹出窗口,包括奥地利、德国、匈牙利、斯洛伐克和克罗地亚,但只是数字错误。我不知道为什么 map()
为德国生产城市,尽管 country[1:5]
中排名前五的国家是“奥地利”“德国”“斯洛伐克”“匈牙利”“克罗地亚”
如何阻止 map()
给我城市而不是我想要的所有国家。如果有人知道更简单的方法,我会很高兴知道。
在maps::map()
的调用中添加一个参数exact = TRUE
,问题就解决了。
library(leaflet)
country <- c("Austria", "Germany", "Slovakia", "Hungary", "Croatia")
bounds <- maps::map("world", country, fill = TRUE, plot = FALSE, exact = TRUE)
bounds$value <- c(300, 4, 8, 1, 8)
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds,
group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", bounds$names, "<br>",
"Value: ", bounds$value, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))
同时单独创建 HTML 标签并在将它们传递给 leaflet
之前检查它们可能有助于发现问题...
我正在尝试在传单地图上为每个国家/地区创建一个弹出窗口,显示国家/地区名称和数字。我在堆栈交换中遇到了类似的问题
country <- c("Austria", "Germany", "Slovakia", "Hungary", "Croatia")
# Wanted only five countries
bounds <- map("world", country, fill = TRUE, plot = FALSE)
bounds$value <- c(300, 4, 8, 1, 8)
# Producing leaflet map
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", bounds$names, "<br>",
"Value: ",bounds$value, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))
制作地图时,弹出窗口显示错误的数字,然后我继续查看 bounds$names
的样子,我看到国家的前五个名称如下:
“奥地利”“德国:乌泽多姆”“德国:费马恩”“德国:鲁根”“德国:4”
地图本身仍在显示我想要的国家/地区的弹出窗口,包括奥地利、德国、匈牙利、斯洛伐克和克罗地亚,但只是数字错误。我不知道为什么 map()
为德国生产城市,尽管 country[1:5]
中排名前五的国家是“奥地利”“德国”“斯洛伐克”“匈牙利”“克罗地亚”
如何阻止 map()
给我城市而不是我想要的所有国家。如果有人知道更简单的方法,我会很高兴知道。
在maps::map()
的调用中添加一个参数exact = TRUE
,问题就解决了。
library(leaflet)
country <- c("Austria", "Germany", "Slovakia", "Hungary", "Croatia")
bounds <- maps::map("world", country, fill = TRUE, plot = FALSE, exact = TRUE)
bounds$value <- c(300, 4, 8, 1, 8)
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds,
group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", bounds$names, "<br>",
"Value: ", bounds$value, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))
同时单独创建 HTML 标签并在将它们传递给 leaflet
之前检查它们可能有助于发现问题...