You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调整mapdeck描边或填充色导致R崩溃问题求助

mapdeck修改颜色导致R崩溃的问题排查思路

问题描述

  • Windows 11环境下使用mapdeck包,只要修改多边形、线或点的描边/填充颜色,R就会崩溃并需终止会话;不修改颜色时数据可正常渲染。
  • 崩溃前会弹出如下警告:

Registered S3 method overwritten by 'jsonify':
method from
print.json jsonlite

  • 已尝试更换R版本、重装R、更新相关包,问题仍未解决。

复现代码

library(mapdeck)
set_token(TOKEN) 
mapdeck() %>%
  add_path(
    data = roads
    , stroke_colour = "RIGHT_LOC"  # 注释掉此行即可正常运行
  )

会话信息

sessionInfo()
R version 4.2.3 (2023-03-15 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.utf8 
[2] LC_CTYPE=English_United States.utf8   
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                           
[5] LC_TIME=English_United States.utf8    

attached base packages:
[1] stats     graphics  grDevices utils     datasets 
[6] methods   base     

other attached packages:
[1] mapdeck_0.3.4

loaded via a namespace (and not attached):
 [1] tidyselect_1.2.0   remotes_2.4.2     
 [3] purrr_1.0.1        sf_1.0-12         
 [5] jsonify_1.2.2      vctrs_0.6.2       
 [7] generics_0.1.3     miniUI_0.1.1.1    
 [9] htmltools_0.5.5    usethis_2.1.6     
[11] yaml_2.3.7         utf8_1.2.3        
[13] rlang_1.1.1        pkgbuild_1.4.0    
[15] e1071_1.7-13       pillar_1.9.0      
[17] later_1.3.1        urlchecker_1.0.1  
[19] glue_1.6.2         DBI_1.1.3         
[21] sessioninfo_1.2.2  lifecycle_1.0.3   
[23] stringr_1.5.0      devtools_2.4.5    
[25] htmlwidgets_1.6.2  memoise_2.0.1     
[27] callr_3.7.3        fastmap_1.1.1     
[29] httpuv_1.6.11      ps_1.7.5          
[31] class_7.3-21       fansi_1.0.4       
[33] Rcpp_1.0.10        KernSmooth_2.23-20
[35] xtable_1.8-4       promises_1.2.0.1  
[37] classInt_0.4-9     cachem_1.0.8      
[39] pkgload_1.3.2      jsonlite_1.8.4    
[41] mime_0.12          fs_1.6.2          
[43] digest_0.6.31      stringi_1.7.12    
[45] processx_3.8.1     dplyr_1.1.2       
[47] shiny_1.7.4        grid_4.2.3        
[49] cli_3.6.1          tools_4.2.3       
[51] magrittr_2.0.3     proxy_0.4-27      
[53] tibble_3.2.1       profvis_0.3.8     
[55] crayon_1.5.2       sfheaders_0.4.2   
[57] pkgconfig_2.0.3    ellipsis_0.3.2    
[59] prettyunits_1.1.1  rstudioapi_0.14   
[61] R6_2.5.1           units_0.8-2       
[63] compiler_4.2.3  

sapply (c ("geojsonsf", "spatialwidget", "googlePolylines", "mapdeck"),
          packageVersion)
$geojsonsf
[1] 2 0 3

$spatialwidget
[1] 0 2 3

$googlePolylines
[1] 0 8 3

$mapdeck
[1] 0 3 4 

解决思路

  • 检查颜色列数据类型:mapdeck的颜色参数要求列是字符型(颜色名称/十六进制)或数值型,若RIGHT_LOC是因子类型,先转成字符型:roads$RIGHT_LOC <- as.character(roads$RIGHT_LOC)
  • 明确指定颜色映射:手动定义颜色映射规则,避免自动解析出错,比如:stroke_colour = mapdeck::scale_colour(variable = "RIGHT_LOC", palette = "viridis")
  • 测试简化数据集:取roads前10行小数据运行,排除大数据量引发的内存或解析问题
  • 降级jsonify包:警告提示jsonify覆盖了jsonlite的方法,尝试安装旧版本jsonify(如1.2.1),避免方法冲突
  • 验证sf对象有效性:若roads是sf对象,运行sf::st_is_valid(roads)检查几何数据是否存在错误,无效几何可能在颜色映射时触发崩溃
  • 脱离RStudio运行:打开纯R终端执行代码,排除RStudio交互或渲染层面的问题

内容的提问来源于stack exchange,提问作者JNN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:27:06