library(rgdal)
library(rgeos)
library(sp)
There is a fairly lo-rez Mediterranean outline at http://worldmap.harvard.edu/data/geonode:mediterraneansea_q5m . But good enough to have fun with.
readOGR("http://worldmap.harvard.edu/download/wfs/20669/json?outputFormat=json&service=WFS&request=GetFeature&format_options=charset%3AUTF-8&typename=geonode%3Amediterraneansea_q5m&version=1.0.0", layer="OGRGeoJSON", disambiguateFIDs = T) -> medoutline.sp
## OGR data source with driver: GeoJSON
## Source: "http://worldmap.harvard.edu/download/wfs/20669/json?outputFormat=json&service=WFS&request=GetFeature&format_options=charset%3AUTF-8&typename=geonode%3Amediterraneansea_q5m&version=1.0.0", layer: "OGRGeoJSON"
## with 1 features and 8 fields
## Feature type: wkbPolygon with 2 dimensions
# projection is WGS84
proj4string(medoutline.sp)
## [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
# we want a planar.
# http://spatialreference.org/ref/epsg/etrs89-etrs-laea/
# is standard for Europe
spTransform(medoutline.sp, CRS("+init=epsg:3035")) -> medoutline.sp
# Yes(!), this should be a loop. But I want it to be trivial for others to see what I am doing.
palette(rainbow(20))
par(mai=c(0,0,0,0))
plot(gBuffer(medoutline.sp,width = 1000000), col = 1, border = "gray")
plot(gBuffer(medoutline.sp,width = 950000), col = 2, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 900000), col = 3, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 850000), col = 4, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 800000), col = 5, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 750000), col = 6, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 700000), col = 7, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 650000), col = 8, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 600000), col = 9, border = "gray",add = T)
plot(gBuffer(medoutline.sp,width = 550000), col = 10, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 500000), col = 11, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 450000), col = 12, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 400000), col = 13, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 350000), col = 14, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 300000), col = 15, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 250000), col = 16, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 200000), col = 17, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 150000), col = 18, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 100000), col = 19, border = "gray", add = T)
plot(gBuffer(medoutline.sp,width = 50000), col = 20, border = "gray", add = T)
plot(medoutline.sp, col = "blue", add = T)