【问题标题】:How can I represent a rectangle projected in geographic longitude and latitude (`WGS84`) into a regular rectangle?如何将投影在地理经度和纬度 (`WGS84`) 的矩形表示为常规矩形?
【发布时间】:2019-08-26 19:02:43
【问题描述】:

我在谷歌地图中找到了一个矩形的地理经度和纬度,我想将它重新缩放/转换成一个矩形。绘制长/纬度向我展示了一个平行四边形。我知道我需要转换坐标系,但我无法管理。

rectangle <- data.frame(cbind(c(-2.9496687,-2.9486079,-2.9490788,-2.9501396,-2.9496687),c(43.2646848,43.2641405, 43.2636538,43.2641981,43.2646848)))
colnames(rectangle) <- c("Lon","Lat")

plot(rectangle,t="l")

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: r geospatial spatial map-projections


【解决方案1】:

首先将数据框名称改为xy

 df<-data.frame(x=rectangle$Lon,y=rectangle$Lat)

然后将其转换为Polygon 对象:

library(raster)
a<-Polygon(df)

然后进入一个Polygons 对象(基本上是一个多边形列表):

b<-Polygons(list(a),ID=1)

然后变成SpatialPolygons

c<-SpatialPolygons(list(b))

现在,您可以为该元素分配一个坐标参考系,在您的情况下为 lat-long:

proj4string(c) <- CRS("+proj=longlat +datum=WGS84")

最后,在此之后,您可以对其进行改造:

d<-spTransform(c, CRS("+init=epsg:26978")) #Just an example, you can use any crs instead of 'epsg:26978'

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多