基于sfc_POINT类型几何对象的st_buffer缓冲区创建方法咨询
针对sfc_POINT对象的缓冲区创建方法
- 完全可以直接用
st_buffer()处理sfc_POINT类型的sf对象,不需要先转换为sfc_MULTIPOLYGON。st_buffer()原生支持所有基础几何类型(点、线、面),针对点会生成以该点为中心、指定距离为半径的圆形多边形缓冲区。 - 关键注意事项:坐标系单位匹配。你之前处理Shapefile时用
st_buffer(data_as_sf, 2000)得到2km缓冲区,说明当时的坐标系是米制投影坐标系(如UTM系列)。现在从Excel导入的坐标点,必须确保已设置正确的米制投影坐标系——如果当前是经纬度坐标系(比如WGS84,EPSG:4326),直接输入2000会被解析为2000度,结果完全错误。 - 示例代码:
# 假设Excel数据已读取,包含lon(经度)、lat(纬度)列 # 转换为sf对象并指定米制投影(示例用UTM 50N,根据数据位置调整) point_sf <- st_as_sf(excel_data, coords = c("lon", "lat"), crs = 32650) # 直接创建2km缓冲区 point_buffer <- st_buffer(point_sf, dist = 2000) # 验证缓冲区几何类型 class(st_geometry(point_buffer)) - 若当前点数据是经纬度坐标系,需先转换为米制投影再做缓冲区:
# 先转换为米制投影 point_sf_proj <- st_transform(point_sf, crs = 32650) # 创建缓冲区 point_buffer <- st_buffer(point_sf_proj, dist = 2000) # 如需转回经纬度坐标系 point_buffer_wgs84 <- st_transform(point_buffer, crs = 4326)
内容的提问来源于stack exchange,提问作者kiyis_stats
相关产品推荐
相关产品推荐

