如何将拉长网格添加到投影地图?

时间:2014-07-08 05:27:46

标签: r map spatial map-projections

编辑:问题确实与如何将纬度/长网格线添加到投影地图有关。我改变了比赛名称。

我在地理坐标中有一些层次。我想在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。所有这一切必须有一个简单的解决方案,但像往常一样,我在漩涡中迷失了。我可以手动创建一个限制向量,但是真的吗?

1 个答案:

答案 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。只要你远离极地地图,我发现它运作良好。