Есть МСК "Выборг" в формате Mapinfow.prj.
"Выборг", 1008, 1001, 7, 27.95, 0, 1, 250000, -11057.626, 7, 0.999477237, 0.031204196, -485909.751, -0.031204196, 0.999477237, -6699985.630
Утилитой TransCoor геометрии трансформируются корректно.
Нужно программно преобразовать с помощью обратного аффинного преобразования и трансформации СК "Выборг" в формате WKT -> WGS84.
Но программно получается смещение в районе 3-4 км на север. В восточном все нормально.
Функция реафинного преобразования:
Код: Выделить всё
Параметры: 0.999477237, 0.031204196, -485909.751, -0.031204196, 0.999477237, -6699985.630
public Double[] reAffine(Double[] points, Double[] koeff) {
double k, kx, ky;
k = koeff[0] * koeff[4] - koeff[1] * koeff[3];
kx = koeff[1] * koeff[5] - koeff[2] * koeff[4];
ky = koeff[0] * koeff[5] - koeff[2] * koeff[3];
for (int i = 0; i < points.length; i += 2)
{
points[i] = (koeff[4] * points[i] - koeff[1] * points[i + 1] + kx) / k;
points[i + 1] = -1 * (koeff[3] * points[i] - koeff[0] * points[i + 1] + ky) / k;
}
return points;
}
"Выборг", 1008, 1001, 7, 27.95, 0, 1, 250000, -11057.626, 7, 0.999477237, 0.031204196, -485909.751, -0.031204196, 0.999477237, -6699985.630
1001 - датум Pulkovo 1942
Параметры датума:
Pulkovo 1942 : имя датума; KRASSOVSKY: эллипсоид Крассовского; TOWGS84: 24, -123, -94, -0.02, 0.25, 0.13, 1.1
Ед.измерения: метры
5 параметров:
27.95, 0, 1, 250000, -11057.626
Аффинные параметры в WKT не используются, т.к. считаются отдельно.
Код: Выделить всё
WKT:PROJCS["Выборг",
GEOGCS["MI Custom",
DATUM["Pulkovo_1942",
SPHEROID["Krassowsky 1940", 6378245.0, 298.3, AUTHORITY["EPSG","7024"]],
TOWGS84[24.0, -123.0, -94.0, -0.02, 0.25, 0.13, 1.1]],
PRIMEM["Greenwich", 0.0],
UNIT["degree", 0.017453292519943295],
AXIS["Longitude", EAST],
AXIS["Latitude", NORTH]],
PROJECTION["Transverse_Mercator"],
PARAMETER["central_meridian", 27.95],
PARAMETER["latitude_of_origin", 0.0],
PARAMETER["scale_factor", 1.0],
PARAMETER["false_easting", 250000.0],
PARAMETER["false_northing", -11057.626],
UNIT["m", 1.0],
AXIS["x", EAST],
AXIS["y", NORTH]]