PBSMappingはニーズに合うはずです。NCEASにチュートリアルがあります。以下のコードは、そのチュートリアルを基にしています。ところで、私はあなたのデータについて仮定しています。状況に応じて編集してください。
library(PBSmapping)
#prepare towns
pts <- read.csv("towns.csv")
towns <- points(towns$lon, towns$lat)
# read in shapefiles
rivers <- importShapefile("rivers.shp")
boundaries <- importShapefile("boundaries.shp")
# note that importShapefile reads the .prj file if it exists, but it
# does not adopt the proj4 format used by the above approaches
proj.abbr <- attr(boundaries, "projection") # abbreviated projection info
proj.full <- attr(boundaries, "prj") # full projection info
print(proj.abbr)
# [1] "LL"
# generate map using PBSmapping plotting functions
plotPolys(boundaries, projection=proj.abbr, border="gray",
xlab="Longitude", ylab="Latitude")
addPoints(towns, pch=20, cex=0.8)
addLines(rivers, col="blue", lwd=2.0)