spPolygonsOutline.R 1.3 KB

1234567891011121314151617181920212223242526272829
  1. #' Outline for the polygons
  2. #' @details Tsoonidele piirjoone leidmine. Funktsiooni abil leitakse kõikide polügoonide ühisosa.
  3. #' Augud polügoonide sees eemaldatakse
  4. #' @param spdf object with class "SpatialPolygonsDataFrame".
  5. #' @return SpatialPolygon Object with class "SpatialPolygon".
  6. #' @seealso \code{\link{isObjectSpatialPolygonsDataFrame}}, \code{\link{centroid2SpatialPolygonsDataFrame}},
  7. #' \code{\link{projection2WGS84}}, \code{\link{area2SpatialPolygonsDataFrame}},
  8. #' \code{\link{perimeter2SpatialPolygonsDataFrame}}, \code{\link{spPolygonsOutline}}
  9. #' @examples \dontrun{
  10. #' load(tr_tsoonid)
  11. #' tr_tsoonid.outline <- perimeter2SpatialPolygonsDataFrame(spdf = tr_tsoonid)
  12. #' tr_tsoonid.outline
  13. #'
  14. #' }
  15. #'
  16. #' @export
  17. #'
  18. spPolygonsOutline <- function(spdf) {
  19. # Remove intersections
  20. # if(!rgeos::gIsValid(spdf)) {spdf <- rgeos::gBuffer(spdf, byid=FALSE, width=.00000001)} # .000001
  21. # if(!rgeos::gIsValid(spdf)) {message("Remove intersections form spatial polygons."); return(NULL)}
  22. spdf <- rgeos::gBuffer(spdf, byid=FALSE, width=.00000001)
  23. outerRings = Filter(function(f){f@ringDir==1},spdf@polygons[[1]]@Polygons)
  24. outerBounds = sp::SpatialPolygons(list(sp::Polygons(outerRings,ID=1)))
  25. outerBounds@proj4string <- sp::CRS("+init=epsg:4326")
  26. # plot(outerBounds, col = "red", border = "green", lwd = .8)
  27. outerBounds
  28. }