1.MAPTOOLS_CACHE <- new.env(FALSE, parent=globalenv()) 2 3#.onLoad <- function(lib, pkg) { 4# assign("gpclib", FALSE, envir=.MAPTOOLS_CACHE) 5#} 6register_s3_method <- function(pkg, generic, class, fun = NULL) { 7 stopifnot(is.character(pkg), length(pkg) == 1L) 8 stopifnot(is.character(generic), length(generic) == 1L) 9 stopifnot(is.character(class), length(class) == 1L) 10 11 if (is.null(fun)) { 12 fun <- get(paste0(generic, ".", class), envir = parent.frame()) 13 } else { 14 stopifnot(is.function(fun)) 15 } 16 17 if (isNamespaceLoaded(pkg)) { 18 registerS3method(generic, class, fun, envir = asNamespace(pkg)) 19 } 20 21 # Always register hook in case package is later unloaded & reloaded 22 setHook( 23 packageEvent(pkg, "onLoad"), 24 function(...) { 25 registerS3method(generic, class, fun, envir = asNamespace(pkg)) 26 } 27 ) 28} 29 30 31.onLoad <- function(lib, pkg) { 32 assign("gpclib", FALSE, envir=.MAPTOOLS_CACHE) 33 rgeosI <- setRgeosStatus() 34 if (getRversion() < "3.6.0") { 35 register_s3_method("spatstat.geom", "as.im", "RasterLayer") 36 register_s3_method("spatstat.geom", "as.im", "SpatialGridDataFrame") 37 register_s3_method("spatstat.linnet", "as.linnet", "SpatialLines") 38 register_s3_method("spatstat.geom", "as.owin", "SpatialGridDataFrame") 39 register_s3_method("spatstat.geom", "as.owin", "SpatialPixelsDataFrame") 40 register_s3_method("spatstat.geom", "as.owin", "SpatialPolygons") 41 register_s3_method("spatstat.geom", "as.ppp", "SpatialPoints") 42 register_s3_method("spatstat.geom", "as.ppp", "SpatialPointsDataFrame") 43 register_s3_method("spatstat.geom", "as.psp", "Line") 44 register_s3_method("spatstat.geom", "as.psp", "Lines") 45 register_s3_method("spatstat.geom", "as.psp", "SpatialLines") 46 register_s3_method("spatstat.geom", "as.psp", "SpatialLinesDataFrame") 47 } 48 invisible(NULL) 49} 50 51.onAttach <- function(lib, pkg) { 52# assign("gpclib", FALSE, envir=.MAPTOOLS_CACHE) 53 Smess <- paste("Checking rgeos availability: ") 54# rgeosI <- setRgeosStatus() 55 rgeosI <- rgeosStatus() 56 Smess <- paste(Smess, rgeosI, "\n", sep="") 57 Smess <- paste(Smess, "Please note that 'maptools' will be retired by the end of 2023,\nplan transition at your earliest convenience;\nsome functionality will be moved to 'sp'.\n", sep="") 58 if (!rgeosI) Smess <- paste(Smess, 59 "\tNote: when rgeos is not available, polygon geometry", 60 "\tcomputations in maptools depend on gpclib,\n", 61 "\twhich has a restricted licence. It is disabled by default;\n", 62 "\tto enable gpclib, type gpclibPermit()\n") 63 packageStartupMessage(Smess, appendLF = FALSE) 64} 65 66.onUnload <- function(libpath) { 67 rm(.MAPTOOLS_CACHE) 68} 69 70 71