Проблемы с конвертированием NAD83 UTM в лат - PullRequest
0 голосов
/ 22 февраля 2012

Редактировать Таким образом, решение, которое я разместил у Дженнера на VBforums, было, очевидно, в VB, и я использовал онлайн-конвертер для переноса его на C #. Что-то было потеряно в переводах, и именно поэтому это было в 10 милях.

Полагаю, я просто неправильно понимаю, для чего нужны алгоритмы на форумах Proj.Net, и поэтому они не делали то, что я от них хотел.

Я закрою этот вопрос через два дня, когда смогу пометить свой ответ, если кто-то не предоставит что-то удивительное.


У меня проблемы с преобразованием UTM в lat и long. Например, у меня есть следующая UADM-координата NAD83:

Восток: 686029,702258

на север: 3581213,621173

зона: 15

Решение, которое я нашел на vbforums некоторое время назад, дает мне точку в 10 милях к югу от того места, где я ожидал этого. Простое математическое решение, которое я нашел здесь , дает мне неожиданные результаты.

double[] inverseMercator (double x, double y) {
     double lon = (x / 20037508.34) * 180;
     double lat = (y / 20037508.34) * 180;

     lat = 180/Math.PI * (2 * Math.Atan(Math.Exp(lat * Math.PI / 180)) - Math.PI / 2);
     return new double[] {lon, lat};
}
double[] toPoint = inverseMercator (686029.702258, 3581213.621173);

Я получаю следующий результат:

широта: 30.602349476368449

длиной: 6,1627096689832594

Я получаю аналогичные результаты, используя решение Proj.Net, предоставленное D_Guidi в том же потоке.

Используя онлайн-конвертер, я смог приблизиться к тому, что ожидал:

широта: 32,35238307052292

длинный: -91.0230710652583

Может кто-нибудь пролить свет на то, что я делаю неправильно?

Редактировать - предпочел бы решения .NET или что-то, что было бы легко конвертируемым

Похожие темы

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Пробовали ли вы двоичный файл cs2cs, содержащийся в "proj" (проекция, http://trac.osgeo.org/proj/)?. Я считаю, что это сделает точную работу по преобразованию UTM в восток / север и широта / долгота. Проблема в том, что простая математическая формула не точно, достаточно, учесть форму земли.

0 голосов
/ 22 февраля 2012

Итак, решение, которое я разместил у Дженнера на VBforums, было, очевидно, в VB, и я использовал онлайн-конвертер для переноса его на C #. Что-то было потеряно в переводах, и именно поэтому это было в 10 милях.

Полагаю, я просто неправильно понимаю, для чего нужны алгоритмы на форумах Proj.Net, и поэтому они не делали то, что я от них хотел.

...