#' Outline for the polygons #' @details Tsoonidele piirjoone leidmine. Funktsiooni abil leitakse kõikide polügoonide ühisosa. #' Augud polügoonide sees eemaldatakse #' @param spdf object with class "SpatialPolygonsDataFrame". #' @return SpatialPolygon Object with class "SpatialPolygon". #' @seealso \code{\link{isObjectSpatialPolygonsDataFrame}}, \code{\link{centroid2SpatialPolygonsDataFrame}}, #' \code{\link{projection2WGS84}}, \code{\link{area2SpatialPolygonsDataFrame}}, #' \code{\link{perimeter2SpatialPolygonsDataFrame}}, \code{\link{spPolygonsOutline}} #' @examples \dontrun{ #' load(tr_tsoonid) #' tr_tsoonid.outline <- perimeter2SpatialPolygonsDataFrame(spdf = tr_tsoonid) #' tr_tsoonid.outline #' #' } #' #' @export #' spPolygonsOutline <- function(spdf) { # Remove intersections # if(!rgeos::gIsValid(spdf)) {spdf <- rgeos::gBuffer(spdf, byid=FALSE, width=.00000001)} # .000001 # if(!rgeos::gIsValid(spdf)) {message("Remove intersections form spatial polygons."); return(NULL)} spdf <- rgeos::gBuffer(spdf, byid=FALSE, width=.00000001) outerRings = Filter(function(f){f@ringDir==1},spdf@polygons[[1]]@Polygons) outerBounds = sp::SpatialPolygons(list(sp::Polygons(outerRings,ID=1))) outerBounds@proj4string <- sp::CRS("+init=epsg:4326") # plot(outerBounds, col = "red", border = "green", lwd = .8) outerBounds }