Показать карту с помощью 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 не был установлен по умолчанию.