Показать карту с помощью mapview, включить многобайтовый символ в data.frame

Я хочу показать данные, используя 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 五十嵐

1 ответ

Решение

На момент коммита bc2c57f это должно было быть исправлено. До следующего выпуска CRAN MapView просто используйте версию для разработчиков (devtools::install_github("environmentalinformatics-marburg/mapview", ref = "develop")) чтобы решить эту проблему.

Вкратце, это поведение было связано с нашими подпрограммами Rcpp, которые выполняются под капотом, чтобы обеспечить вычислительно эффективное создание всплывающих таблиц. Здесь для создания выходных файлов JSON вместо UTF-8 использовалась собственная кодировка пользователя, что приводило к повреждению вывода текста на некоторых компьютерах, где UTF-8 не был установлен по умолчанию.

Другие вопросы по тегам