Nowadays, it is possible to buffer without projecting vectors in ArcMap and I want to do the same in R. So, could somebody suggest me some way outs to buffer vector polygons without projecting in R?

Function descriptions for "gbuffer" and "buffer" say that they can do that but ends up with error message that they expect metric CRS.

1 Answer 1


I do not know what is happening to your case. Does this work for you?

library(maptools); library(rgdal)
columbus <- readOGR(dsn= system.file("shapes/columbus.shp", 
                                     package="maptools"), layer= "columbus")
proj4string(columbus)   ##### will return NA 
plot(columbus, axes= TRUE)
plot(gBuffer(columbus, width= 0.1, byid = FALSE), border='blue', add= T)

enter image description here

[Added] Geographic (LatLon) dataset

gadm <- getData('GADM', country = "AUT", level = 1)
plot(gadm, axes=T)
plot(gBuffer(gadm, width= 0.1, byid = FALSE), border='blue', add= T)

enter image description here

  • Those look like projected coordinates to me. I believe the OP wants to compute buffers using lat-lon coordinates. Treating them as Euclidean, which your code seems to do, would produce incorrect buffers.
    – whuber
    Mar 27, 2017 at 19:41
  • 1
    Please verify what you are doing before offering advice. If you read the help for the Columbus data (?spdep::columbus) you will see that the polygon coordinates are not geographic or projected and [X,Y] are "in arbitrary digitizing units, not polygon coordinates". The reason that geographic coordinates do not work is that they are in time and not distance units. You first have to convert to great circle distances (kilometers) before performing any distance based analysis. As of now, the gBuffer function does not do this and expects distance units. Many functions in sp provide this conversion. Mar 28, 2017 at 17:42
  • Many thanks @JeffreyEvans for the detailed explanation about the error message. My purpose was to figure out the cause of issue OP encountered. (Error itself does not mean it cannot be plotted.) Added another example for OP to give a try.
    – Kazuhito
    Mar 28, 2017 at 18:47
  • 1
    Let me try to put my problem more clearly, if that helps, I want to use unprojected vector shapefile for buffering but I want to use metric distance to create an outside buffer (e.g. 200km outside buffer). This I could do without any issue in ArcGIS but finding hard time to do it in R.
    – Surya
    Sep 15, 2017 at 8:00
  • @Surya Interesting. Please edit your question to add your comment. It seems my answer is definitely irrelevant.
    – Kazuhito
    Sep 15, 2017 at 8:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.