1

我想使用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 五十嵐
4

1 回答 1

1

从提交bc2c57f 开始,这应该已经修复。在mapview的下一个 CRAN 版本之前,只需使用开发版本 ( devtools::install_github("environmentalinformatics-marburg/mapview", ref = "develop")) 即可解决此问题。

简而言之,这种行为与我们在后台运行的Rcpp例程有关,以确保在计算上有效地创建弹出表。在这里,使用用户的本机编码而不是 UTF-8 来创建 JSON 输出文件,这导致在某些 UTF-8 不是默认值的机器上损坏的文本输出。

于 2017-04-04T06:30:08.763 回答