Pulkovo转WGS84坐标:1928年波兰Rozyszcze地图转换求助
解决思路:1928年Rozyszcze地图Pulkovo坐标转WGS84
核心坐标含义解析
首先明确地图标注的坐标逻辑:
-5°06' na zach. od Pulkowa是波兰语,意为Pulkovo天文台子午线以西5°06'。Pulkovo的本初子午线相对于格林尼治的经度为 东经30°19'42.9''(十进制约30.328583°),这是转换的核心基准值。50°55'为北纬50°55'(十进制约50.916667°)。
方法一:手动快速计算(适合单坐标)
直接通过子午线偏移计算WGS84坐标:
- 将Pulkovo子午线转十进制:
30 + 19/60 + 42.9/3600 ≈ 30.328583°E - 计算格林尼治经度:
30.328583° - 5.1°(5°06'的十进制)≈ 25.228583°E,即约25°13'43''E,与你预期的25°13'一致。 - 纬度保持北纬50°55'(十进制约50.9167°)。
最终WGS84坐标(十进制):(25.2286, 50.9167)
方法二:用GDAL/PostGIS自定义坐标系批量转换
之前你尝试的EPSG编码均不匹配,因为多数Pulkovo相关EPSG是投影坐标系或基于格林尼治本初子午线的地理坐标系,而你的坐标基于Pulkovo自身子午线。需自定义坐标系:
1. GDALTransform 命令行实现
# 自定义Pulkovo 1928地理坐标系(基于Pulkovo子午线),并转换到WGS84 gdaltransform -s_srs "+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +pm=30.32858333333333 +no_defs" -t_srs EPSG:4326 # 输入待转换坐标(十进制):-5.1 50.916667 # 输出即为WGS84坐标
参数说明:
+ellps=krass:Pulkovo 1928使用的Krassovsky椭球+towgs84=...:Pulkovo 1928转WGS84的标准七参数+pm=30.328583...:指定本初子午线为Pulkovo的经度
2. PostGIS 数据库实现
先插入自定义坐标系到spatial_ref_sys表:
INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext) VALUES ( 99999, 'custom', 99999, 'Pulkovo 1928, Geographic (Pulkovo Meridian)', '+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +pm=30.32858333333333 +no_defs', 'GEOGCS["Pulkovo 1928 (Pulkovo Meridian)",DATUM["Pulkovo_1928",SPHEROID["Krassovsky",6378245.0,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Pulkovo",30.32858333333333,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["custom","99999"]]' );
再执行转换:
SELECT ST_AsText(ST_Transform(ST_SetSRID(ST_MakePoint(-5.1, 50.916667), 99999), 4326));
内容的提问来源于stack exchange,提问作者Fritz
相关产品推荐
相关产品推荐

