坐标系转换请求:将数据坐标系转换至匹配Shapefile坐标系
地理坐标系转换实现方案
坐标系识别
- 你的原始坐标(如
51.40633 | 0.015208)属于WGS84经纬度坐标系(EPSG:4326),是全球通用的GPS坐标系 - Shapefile中的坐标(如
544173.0 | 184701.4)属于英国国家格网(OSGB36)(EPSG:27700),是针对英国本土的平面投影坐标系
修正后的R代码(含中文注释)
你提供的原始代码存在逻辑错误:直接用Shapefile的投影定义经纬度数据会导致坐标偏移,正确流程是先为原始经纬度指定对应坐标系,再执行转换。
# 提取住宅的经纬度坐标(基于邮编数据) pts <- cbind(epcp1$longitude, epcp1$latitude) # 将经纬度数据定义为WGS84坐标系下的空间点对象 pts_sp <- SpatialPoints(pts, proj4string = CRS("+init=epsg:4326")) # 将空间点转换为与Shapefile一致的坐标系 pts_transformed <- spTransform(pts_sp, CRS(proj4string(shapefile)))
关键说明
- 必须先明确原始数据的坐标系(WGS84),不能直接套用目标投影
spTransform是sp包中专门用于坐标系转换的函数,确保坐标转换的准确性- 转换完成后,可通过
coordinates(pts_transformed)查看结果,确认坐标范围与Shapefile匹配
内容的提问来源于stack exchange,提问作者enat_b
相关产品推荐
相关产品推荐

