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

部署含已弃用maptools的Shiny App遇问题求助

解决方案

方案一:正确安装归档版maptools并加载

你之前的安装代码存在文件名不匹配问题(下载的是maptools_1.1-8.tar.gz,但保存为maptools_0.2-2.tar.gz),这会导致安装版本错误,按以下步骤修正:

  1. 执行正确的安装代码:
url <- "https://cran.r-project.org/src/contrib/Archive/maptools/maptools_1.1-8.tar.gz"
pkgFile <- basename(url) # 自动获取URL中的文件名,避免手动写错
download.file(url = url, destfile = pkgFile)
install.packages(pkgs = pkgFile, type = "source", repos = NULL, dependencies = TRUE)
  1. 在Shiny App代码开头加载maptools包:
library(maptools)

加载后as(SpatialPoints, "ppp")和as(SpatialPolygons, "owin")的转换方法就能被正确识别。

方案二:替换maptools,使用现代包实现转换(推荐)

maptools已从CRAN退役,后续兼容性无法保障,推荐用sf和spatstat.geom替代,步骤如下:

  1. 安装依赖包:
install.packages(c("sf", "spatstat.geom"))
  1. 替换SpatialPoints转ppp的代码:
    原代码:
place_sp <- as_Spatial(place)
place_sp <- as(place_sp, "SpatialPoints")
place_ppp <- as(place_sp, "ppp")

替换为:

library(sf)
library(spatstat.geom)

# 若place是sf对象,直接转换
place_ppp <- as.ppp(place)

# 若必须保留Spatial对象转换
place_sp <- as_Spatial(place)
place_ppp <- ppp(
  x = coordinates(place_sp)[, 1],
  y = coordinates(place_sp)[, 2],
  window = owin() # 若有对应窗口,替换为实际的owin对象
)
  1. 替换SpatialPolygons转owin的代码:
    原代码:
sz_sp = as(sz, "SpatialPolygons")
sz_owin = as(sz_sp, "owin")

替换为:

library(sf)
library(spatstat.geom)

# 若sz是sf多边形对象,直接转换
sz_owin <- as.owin(sz)

# 若sz是SpatialPolygons对象
sz_owin <- owin(poly = sz_sp@polygons[[1]]@Polygons[[1]]@coords)
  1. 在Shiny App开头加载上述两个包:
library(sf)
library(spatstat.geom)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:16:04