Конвертировать координаты WGS84 Lat Lon в OSGR, используя класс NMEA2OSG - C # - PullRequest
0 голосов
/ 29 августа 2018

Мне нужно преобразовать систему координат WGS84 Lat Lon (в основном то, что используют карты Google и Bing) в систему координат Британского ордонанса. Поскольку вычисления довольно сложны (что-то об эллипсоидах, проекции и т. Д.), Существует широко используемый класс C #, который обычно используется как NMEA2OSG.

Ссылка на класс NMEA2OSG: Класс NMEA2OSG

Я изо всех сил пытаюсь понять, как использовать этот класс. Хотя в SO есть несколько вопросов о том, как преобразовать WGS84 в OSGR, нет вопросов о том, как использовать класс NMEA2OSG.

Я попытался запустить второй метод, который кажется правильным, так как он принимает длинные десятичные дроби в качестве входных данных. Попытайтесь сделать следующее:

NMEA2OSG nMEA2OSG = new NMEA2OSG();
bool coord = nMEA2OSG.Transform(52.3, -0.1, 50);

Однако этот метод возвращает только значение типа bool, поэтому предположительно мне нужно получить доступ к выводу метода из экземпляра класса. К сожалению, я не понимаю, как это сделать.

Может кто-нибудь посоветовать, как вернуть преобразованные координаты из класса NMEA2OSG?

Бонусный вопрос, если кто-то знает, что переменные высоты означают в методе «Преобразование», что также было бы полезно. Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

В классе NMEA20SG есть события для уведомления вас о результатах. Вот код для настройки:

static void Main(string[] args)
{
    NMEA2OSG nMEA2OSG = new NMEA2OSG();
    nMEA2OSG.NorthingEastingReceived += NMEA2OSG_NorthingEastingReceived;
    nMEA2OSG.NatGridRefReceived += NMEA2OSG_NatGridRefReceived;
    bool coord = nMEA2OSG.Transform(52.3, -0.1, 50);
    Console.ReadKey();
}

private static void NMEA2OSG_NatGridRefReceived(string ngr)
{
    Console.WriteLine("NatGrid: {0}", ngr);
}

private static void NMEA2OSG_NorthingEastingReceived(double northing, double easting)
{
    Console.WriteLine("Northing = {0}, Easting = {1}", northing, easting);
}

Результаты для вашего ввода:

Northing = 268576, Easting = 529657
NatGrid: TL 29657 68576
...