繁体   English   中英

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

[英]How can I add a lat-long grid to a projected map?

编辑:问题确实与如何将lat / long网格线添加到投影地图有关。 我把冠军改成了比赛。

我在地理坐标中有一些层次。 我想在LCC投影中绘制它们,但是具有地理(纬度/长度)网格。 mapproj我可以使用map.grid()添加一个网格,其限制由lim参数设置。 它需要一个矢量或范围对象:

指定限制的4个数字的向量:c(lon.low,lon.high,lat.low,lat.high)。 lim也可以是一个包含名为range的组件的列表,例如map的结果,从中获取限制。

我通过使用剪切多边形剪切一个大的矢量图层来构建我的地图:

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

编辑:OP指出rgdal::llgridlines这是一个更好的解决方案。

您正在使用sp/rgdal上下文,该上下文使用与mapproj/maps不同的系统。

试试这个(未经测试):

library(rgdal)
gl <- gridlines(myPoly)
cp.gl <- spTransform(gl, lcc)
plot(cp.gl, add = TRUE)

有关使用标签的更多信息,请参阅?gridlines 只要你远离极地地图,我发现它运作良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM