Аффинные коэффициенты в СК нотациях MapInfo и WKT дают разный результат
Добавлено: 04 фев 2019, 13:55
Добрый день,
Есть СК Выборга с афинными коэффициентами:
"Vyborg", 1008, 1001, 7, 27.95, 0, 1, 250000, -11057.626, 7,
0.999477237, 0.031204196, -485909.751, -0.031204196, 0.999477237, -6699985.630
которое дает правильный результат при использовании утилиты TransCoor в MapInfo.
При подстановке тех же коэффициентов в нотации WKT:
FITTED_CS[\"SRG\",
"PARAM_MT[\"Affine\",
PARAMETER[\"num_row\", 3],
PARAMETER[\"num_col\", 3],
PARAMETER[\"elt_0_0\", 0.999477237],
PARAMETER[\"elt_0_1\", 0.031204196],
PARAMETER[\"elt_0_2\", -485909.751],
PARAMETER[\"elt_1_0\", 0.999477237],
PARAMETER[\"elt_1_1\", -0.031204196],
PARAMETER[\"elt_1_2\", -6699985.630]],
PROJCS[\"unnamed\",GEOGCS[\"Krassovsky, 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassovsky\",6378245,298.3], TOWGS84[24,-123,-94,0.02,-0.25,-0.13,1.1]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]],
PROJECTION[\"Transverse_Mercator\"], PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",27.95],PARAMETER[\"scale_factor\",1],
"PARAMETER[\"false_easting\",250000],PARAMETER[\"false_northing\",-11057.626],UNIT[\"Meter\",1.0]]]
функция библиотеки geotools CRS.parseWKT(VyborgWithAffineWKTString) проходит парсинг, но на выходе функций
CoordinateReferenceSystem targetCs = CRS.decode("EPSG:4326");
MathTransform fromVyborgWithAffineWKTToWGS84 = CRS.findMathTransform(WKTWithAffineVyborg, targetCs, true);
VyborgWKTGeom = JTS.transform(VyborgPolygon, fromVyborgWithAffineWKTToWGS84);
выдает некорректные результаты в WGS84.
Изменение порядка особых результатов не приносит. Если убрать минус в смещениях, получаются почти правильные координаты, но смещенные на 2 градуса на восток.
В чем может быть проблема? Насколько надежны функции библиотеки geotools в плане трансформации с использованием WKT?
Есть СК Выборга с афинными коэффициентами:
"Vyborg", 1008, 1001, 7, 27.95, 0, 1, 250000, -11057.626, 7,
0.999477237, 0.031204196, -485909.751, -0.031204196, 0.999477237, -6699985.630
которое дает правильный результат при использовании утилиты TransCoor в MapInfo.
При подстановке тех же коэффициентов в нотации WKT:
FITTED_CS[\"SRG\",
"PARAM_MT[\"Affine\",
PARAMETER[\"num_row\", 3],
PARAMETER[\"num_col\", 3],
PARAMETER[\"elt_0_0\", 0.999477237],
PARAMETER[\"elt_0_1\", 0.031204196],
PARAMETER[\"elt_0_2\", -485909.751],
PARAMETER[\"elt_1_0\", 0.999477237],
PARAMETER[\"elt_1_1\", -0.031204196],
PARAMETER[\"elt_1_2\", -6699985.630]],
PROJCS[\"unnamed\",GEOGCS[\"Krassovsky, 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassovsky\",6378245,298.3], TOWGS84[24,-123,-94,0.02,-0.25,-0.13,1.1]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]],
PROJECTION[\"Transverse_Mercator\"], PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",27.95],PARAMETER[\"scale_factor\",1],
"PARAMETER[\"false_easting\",250000],PARAMETER[\"false_northing\",-11057.626],UNIT[\"Meter\",1.0]]]
функция библиотеки geotools CRS.parseWKT(VyborgWithAffineWKTString) проходит парсинг, но на выходе функций
CoordinateReferenceSystem targetCs = CRS.decode("EPSG:4326");
MathTransform fromVyborgWithAffineWKTToWGS84 = CRS.findMathTransform(WKTWithAffineVyborg, targetCs, true);
VyborgWKTGeom = JTS.transform(VyborgPolygon, fromVyborgWithAffineWKTToWGS84);
выдает некорректные результаты в WGS84.
Изменение порядка особых результатов не приносит. Если убрать минус в смещениях, получаются почти правильные координаты, но смещенные на 2 градуса на восток.
В чем может быть проблема? Насколько надежны функции библиотеки geotools в плане трансформации с использованием WKT?