v <- vect(rbind(c(-120,-20), c(-80,5), c(-40,-60), c(-120,-20)),
type="polygons", crs="+proj=longlat")
vd <- densify(v, 200000)
p <- project(v, "+proj=robin")
pd <- project(vd, "+proj=robin")
# good
plot(pd, col="gray", border="red", lwd=10)
points(pd, col="gray")
# bad
lines(p, col="blue", lwd=3)
points(p, col="blue", cex=2)
plot(p, col="blue", alpha=.1, add=TRUE)
legend("topright", c("good", "bad"), col=c("red", "blue"), lty=1, lwd=3)
## the other way around does not work
## unless the original data was truly planar (e.g. derived from a map)
x <- densify(p, 250000)
y <- project(x, "+proj=longlat")
# bad
plot(y)
# good
lines(vd, col="red")
Run the code above in your browser using DataLab