我想使用mapview
包显示数据。
但包含多字节字符,有时无法显示地图。
显示地图的最佳方式是什么?
library(mapview)
data(atlStorms2005)
test1 <- test2 <- atlStorms2005
test1@data$test <- as.factor(c("日本語", "てすと"))
test2@data$test <- as.factor(c("日本語", "五十嵐"))
mapview(test1) # can show the map
mapview(test2) # cannot show
re.data.frame <- function(data, encoding = "UTF-8", fileEncoding="UTF-8"){
write.csv(data, file("tmp.csv", encoding = encoding), row.names = F, fileEncoding=fileEncoding)
tmp <- readr::read_csv("tmp.csv", col_types = cols())
return(tmp)
}
test2@data <- re.data.frame(test2@data)
mapview(test2) # can show
数据是正确的。
head(test2@data)
# A tibble: 6 × 4
Name MaxWind MinPress test
<chr> <int> <int> <chr>
1 ALPHA 45 998 日本語
2 ARLENE 60 989 五十嵐
3 BRET 35 1002 日本語
4 CINDY 65 991 五十嵐
5 DELTA 60 980 日本語
6 DENNIS 130 930 五十嵐
答案 0 :(得分:1)
从提交bc2c57f开始,这应该已经修复。在 mapview 的下一个CRAN版本发布之前,只需使用开发版本(devtools::install_github("environmentalinformatics-marburg/mapview", ref = "develop")
)即可解决此问题。
简而言之,此行为与我们的 Rcpp 例程有关,这些例程在引擎盖下运行,以确保计算效率高的弹出表创建。这里,使用用户的本机编码而不是UTF-8来创建JSON输出文件,导致某些机器上的文本输出损坏,其中UTF-8不是默认值。