如何为高校Shapefile创建1英里缓冲区?解决st_buffer过大问题
解决st_buffer生成过大缓冲区的问题
问题根源
你当前使用的是地理坐标系(如WGS84,EPSG:4326),这类坐标系的单位是「度」,而非米。直接输入1609.34作为缓冲距离,程序会将其解析为1609.34度的缓冲区,这必然导致范围异常庞大。
解决步骤
- 确认当前坐标系
先检查college_sf的坐标系类型:
st_crs(college_sf)
若返回的是EPSG:4326或其他地理坐标系,需转换为单位为米的投影坐标系。
- 转换为米单位的投影坐标系
弗吉尼亚州适合的投影坐标系可选:
- UTM 18N(EPSG:32618,覆盖州内大部分区域)
- 弗吉尼亚州平面坐标系(如Virginia North,EPSG:3654)
以UTM 18N为例进行转换:
college_sf_proj <- st_transform(college_sf, crs = 32618)
- 生成1英里缓冲区
在投影坐标系下,直接使用米作为单位创建缓冲区:
college_sf_buffer <- st_buffer(college_sf_proj, dist = 1609.34)
- (可选)转换回原坐标系
如果后续需要和原WGS84坐标系的数据集做空间操作,可将缓冲区转换回EPSG:4326:
college_sf_buffer_wgs84 <- st_transform(college_sf_buffer, crs = 4326)
内容的提问来源于stack exchange,提问作者wizkids121
相关产品推荐
相关产品推荐

