【问题标题】:Convert WGS84 Lat Lon coordinates to OSGR using NMEA2OSG Class – C#使用 NMEA2OSG 类 - C# 将 WGS84 Lat Lon 坐标转换为 OSGR
【发布时间】:2018-08-29 16:05:39
【问题描述】:

我需要从 WGS84 Lat Lon 坐标系(基本上是谷歌地图和 Bing 使用的)转换为英国条例测量坐标系。 由于计算相当复杂(关于椭球体和投影等),因此有一个现成的 C# 类,通常称为“NMEA2OSG”。

NMEA2OSG 课程链接:NMEA2OSG Class

我很难理解如何使用这个类。虽然关于如何将 WGS84 转换为 OSGR 有几个关于如何使用 NMEA2OSG 类的问题。

我试过运行它的第二种方法,这似乎是正确的方法,因为它接受长纬度小数作为输入。尝试如下:

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

但是,这个方法只返回一个布尔值,所以我想我需要从类的实例中访问方法的输出。不幸的是,我不明白该怎么做。

谁能建议如何从 NMEA2OSG 类返回转换后的坐标?

额外的问题,如果有人知道高度变量在“变换”方法中的含义也很有用。 谢谢

【问题讨论】:

    标签: c# class coordinates wgs84


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2011-01-23
      • 2016-05-25
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      相关资源
      最近更新 更多