Atlaslog / Field Notes / Loading & display
Field note · Loading & display
Shapefile without .prj read as lat/lon and lands 500 km east of Xi'an
Quick answer
Only .shp, .shx and .dbf were delivered, and the .shp header stores no coordinate system. GDAL falls back to EPSG:4326, so metre values around 500000 become 500000 degrees and the polygons appear near the West African coast.
Symptom
- Coordinates with x between 350000 and 650000 and y near 3780000 are interpreted as longitude and latitude.
- QGIS reports an invalid layer extent or draws the layer near the Gulf of Guinea.
- ogrinfo -al -so prints Layer SRS WKT: (unknown).
Checklist
- Check the directory for a .prj whose filename matches the .shp exactly, including case.
- Read the coordinate magnitude: x near 500000 with y in the millions means a Gauss-Kruger or UTM projection.
- Derive the central meridian from x minus 500000 and the latitude from y, since 3780000 implies about 34.3 degrees north.
- Look for accompanying metadata or result tables that state the original coordinate system.
- Run ogrinfo -al -so to confirm the SRS is unknown before editing anything.
Fix
Write a WKT .prj with the matching name for CGCS2000 3-degree Gauss-Kruger CM 108E with false easting 500000, or rewrite in one step with ogr2ogr -f 'ESRI Shapefile' fixed districts.shp -a_srs EPSG:4546. No coordinate transformation is needed because the geometry values are intact.
Code
# 查看是否有坐标系信息
ogrinfo -al -so districts.shp
# 输出中若为 Layer SRS WKT: (unknown) 即缺 .prj
# 用坐标反推:x=500000 -> 中央经线上;y=3800000 -> 北纬约 34.3PROJCS["CGCS2000_3_Degree_GK_CM_108E",
GEOGCS["China Geodetic Coordinate System 2000",
DATUM["China_2000", SPHEROID["CGCS2000",6378137,298.257222101]],
PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",108],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1]]
Watch out
- Using -t_srs instead of -a_srs, which actually moves the numbers and destroys the original coordinates.
- Renaming another layer's .prj to fit: a WKT for a different zone shifts everything by whole degrees.
English edition written for Atlaslog from the original Chinese field note. Code is unchanged and runs as-is.
Atlaslog (2026). Shapefile without .prj read as lat/lon and lands 500 km east of Xi'an. https://www.jingweizhi.com/en/cookbook/shapefile-prj-missing.html (accessed 2026-11-03).