编辑:问题确实与如何将纬度/长网格线添加到投影地图有关。我改变了比赛名称。
我在地理坐标中有一些层次。我想在LCC投影中绘制它们,但是具有地理(纬度/长度)网格。从mapproj
我可以使用map.grid()
添加网格,其中的限制由lim
参数设置。它需要一个矢量或范围对象:
指定限制的4个数字的向量:c(lon.low,lon.high,lat.low, lat.high)。 lim也可以是具有名为range的组件的列表,例如 作为地图的结果,从中获取限制。
我通过剪切带剪裁多边形的大矢量图层构建我的地图:
myPoly <- readOGR(dsn=".", layer="myPolygon") # just a shapefile in geographic coords
library(raster) # To convert an 'extent' object to a SpatialPolygons object
cp <- as(extent(146, 149, -39, -37.5), "SpatialPolygons")
proj4string(cp) <- CRS(proj4string(myPoly)) # copy from shapefile
# Transform and plot:
lcc <- CRS("+init=epsg:3111")
myPoly.proj <- spTransform(myPoly, lcc)
cp.proj <- spTransform(cp, lcc) # transform the clip box
myPoly.proj.clip <- gIntersection(myPoly.proj, cp.proj, byid=TRUE)
plot(myPoly.proj.clip)
# Then finally, add a lat/long grid:
map.grid(lim=as.vector(cp.proj@bbox), labels=TRUE)
最后一行不正确,因为返回的@bbox是xmin,ymin,xmax,ymax,但需要是xmin,xmax,ymin,ymax。所有这一切必须有一个简单的解决方案,但像往常一样,我在漩涡中迷失了。我可以手动创建一个限制向量,但是真的吗?
答案 0 :(得分:0)
编辑:OP指出rgdal::llgridlines
这是一个更好的解决方案。
您正在使用sp/rgdal
中使用与mapproj/maps
不同的系统的上下文。
试试这个(未经测试):
library(rgdal)
gl <- gridlines(myPoly)
cp.gl <- spTransform(gl, lcc)
plot(cp.gl, add = TRUE)
有关使用标签的更多信息,请参阅?gridlines
。只要你远离极地地图,我发现它运作良好。