R包sf坐标转换问题:圣路易斯NAD83格式门店坐标转换后无法显示
问题根因
- EPSG:6512对应NAD83(2011)密苏里州东州平面坐标系,单位为米
- I/Leads平台输出的圣路易斯本地州平面坐标默认单位为美制英尺,对应坐标系为EPSG:26996(NAD83密苏里州东,英尺单位),单位和坐标系匹配错误导致转换后坐标大幅偏移超出研究区域,无法正常显示。
排查验证方法
- 输出门店点位原始边界:运行
st_bbox(store.sf),再输出圣路易斯县域边界在EPSG:6512下的范围进行对比,若门店点位数值是区域边界的3.28倍左右(1米≈3.28英尺),即可确认问题。 - 示例坐标验证:你提供的两组X/Y坐标量级为90万/103万,符合EPSG:26996下圣路易斯区域的坐标范围,若按EPSG:6512解析则对应坐标远超出本地边界,进一步证实坐标系选择错误。
修复方案
将门店坐标初始化的坐标系参数替换为EPSG:26996即可,修改后代码如下:
store <- import("C:file2.csv") # 采用英尺单位的NAD83密苏里州东坐标系解析门店坐标 store.sf <- st_as_sf(store, coords = c("XCoord", "YCoord"), crs = "epsg:26996") store.sf.utm <- st_transform(store.sf, crs = "ESRI:102003")
后续验证
- 转换完成后运行
st_bbox(store.sf.utm),与st_bbox(county.sf)的范围对比,确认门店点位落在研究区域内 - 单独绘制门店点位:运行
plot(st_geometry(store.sf.utm)),确认点位分布符合圣路易斯的实际地理范围
内容的提问来源于stack exchange,提问作者revere2323
相关产品推荐
相关产品推荐

