在 sf 对象上设置正确的 crs 以绘制坐标点
Posted
技术标签:
【中文标题】在 sf 对象上设置正确的 crs 以绘制坐标点【英文标题】:Set the right crs on sf object to plot coordinate points 【发布时间】:2018-10-18 07:54:56 【问题描述】:我正在尝试为我的 sf
对象定义正确的 CRS。我想在以下图层(国家:荷兰)上绘制点:
Simple feature collection with 380 features and 3 fields
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: 13565.4 ymin: 306846.2 xmax: 278026.1 ymax: 619232.6
epsg (SRID): NA
proj4string: +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs
输出:
这个层有正确的投影。
但是POINT
层没有正确的CRS项目大概是因为它没有proj4string
?
Simple feature collection with 566 features and 5 fields
geometry type: POINT
dimension: XY
bbox: xmin: 3.5837 ymin: 50.86487 xmax: 7.120998 ymax: 53.44835
epsg (SRID): NA
proj4string: NA
如何设置与上一张地图相同的投影,以便在其上绘制坐标点?
【问题讨论】:
【参考方案1】:另外还有一个函数st_set_crs()
,可以在管道中使用。例如,
points %>% st_set_crs(st_crs(polygons))
【讨论】:
我在包sf
中找不到函数 st_set_crs
。现在已经过时了吗?
它似乎是geotidy
包的一部分。
sf::st_set_crs()
存在。【参考方案2】:
您可以使用st_crs
。
正如示例中所说:
st_crs(x) <- value
在你的情况下可能是
st_crs(points) <- st_crs(polygons)
注意:这些点当然应该在同一个坐标系中注册。如果没有,您必须为它们找出正确的坐标系,然后使用st_transform
将它们放入与多边形相同的坐标系中。
【讨论】:
以上是关于在 sf 对象上设置正确的 crs 以绘制坐标点的主要内容,如果未能解决你的问题,请参考以下文章
我现在有大量的经纬度坐标点,想在地图上绘制各点相连的图形。谷歌API或者百度API可以实现这样的功能吗?
高德地图的Marker和MarkerCluster的应用场景分析