Проблема с преобразованием координат
Добавлено: 05 авг 2013, 12:18
Добрый день. Нужно пересчитать координаты между МСК-32 (Брянская область) и WGS84
Известные данные:
Проекция - поперечная Меркатора,
нулевая широта 0°,
нулевая долгота 35°29',
сдвиг по широте -5412900.566м,
сдвиг по долготе 2250000м.
Есть проект в Trimble Geomatics Office, на основе которого мы работаем, там заданы координаты некоторых пунктов в WGS84 и в МСК-32.
На его основе хочу подобрать семь параметров для Position-Vector Transformation.
Подбираю методом тыка, начальное значение ключей от СК42, далее изменяю ключи случайным образом.
Если отклонение от X,Y,Z новых ключей меньше, то запоминаю их.
Для пересчета использую библиотеку DotSpatial.
На стадии разработки у меня 4 пункта, чтобы быстрее работало. После получения ключей пробую пересчитать контрольный пункт, получаю погрешность по долготе: 0.3м, по широте: 0.1м, по высоте 4м.
Пока все нормально. Пробую загрузить эти ключи в JAVAD Justin и в Javad Tracy (коммуникатор VICTOR). Получаю погрешность около 6", около 185 метров. В чем может быть проблема?(
Известные данные:
Проекция - поперечная Меркатора,
нулевая широта 0°,
нулевая долгота 35°29',
сдвиг по широте -5412900.566м,
сдвиг по долготе 2250000м.
Есть проект в Trimble Geomatics Office, на основе которого мы работаем, там заданы координаты некоторых пунктов в WGS84 и в МСК-32.
На его основе хочу подобрать семь параметров для Position-Vector Transformation.
Подбираю методом тыка, начальное значение ключей от СК42, далее изменяю ключи случайным образом.
Если отклонение от X,Y,Z новых ключей меньше, то запоминаю их.
Для пересчета использую библиотеку DotSpatial.
Код: Выделить всё
ProjectionInfo wgsProj = KnownCoordinateSystems.Geographic.World.WGS1984;
var keys = new[]
{
23.814,
-123.193,
-94,
0.18749,
-0.22884,
-0.13,
1.1
};
var projString ="+proj=tmerc +lat_0=0 +lon_0=35.483333333333333333333333333333333333 +k=1 +x_0=2250000 +y_0=-5412900.566 +ellps=krass +towgs84="
+ keys[0].ToString(CultureInfo.InvariantCulture) + ","
+ keys[1].ToString(CultureInfo.InvariantCulture) + ","
+ keys[2].ToString(CultureInfo.InvariantCulture) + ","
+ keys[3].ToString(CultureInfo.InvariantCulture) + ","
+ keys[4].ToString(CultureInfo.InvariantCulture) + ","
+ keys[5].ToString(CultureInfo.InvariantCulture) + ","
+ keys[6].ToString(CultureInfo.InvariantCulture) + " +units=m +no_defs";
return ProjectionInfo.FromProj4String(projString);
var localXY = new double[] {2166921.047, 493562.471};
var localZ = new double[] {206.448};
Reproject.ReprojectPoints(localXY, localZ, msk32, wgsProj, 0, 1);
Пока все нормально. Пробую загрузить эти ключи в JAVAD Justin и в Javad Tracy (коммуникатор VICTOR). Получаю погрешность около 6", около 185 метров. В чем может быть проблема?(