簡體   English   中英

使用NMEA2OSG類– C#將WGS84緯度Lon坐標轉換為OSGR

[英]Convert WGS84 Lat Lon coordinates to OSGR using NMEA2OSG Class – C#

我需要將WGS84 Lat Lon坐標系(基本上是Google的地圖和Bing使用的坐標系)轉換為英國條例調查坐標系。 由於計算相當復雜(有關橢球和投影等),因此有一種現成的C#類,通常稱為“ NMEA2OSG”。

鏈接到NMEA2OSG類: NMEA2OSG類

我正在努力了解如何使用此類。 盡管有一些關於如何將WGS84轉換為OSGR的問題,但還沒有關於如何使用NMEA2OSG類的問題。

我嘗試運行第二種方法,這似乎是正確的方法,因為它接受長的十進制小數作為輸入。 嘗試如下:

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

但是,此方法僅返回布爾值,因此大概我需要從類的實例訪問該方法的輸出。 不幸的是我不知道該怎么做。

誰能建議如何從NMEA2OSG類返回轉換后的坐標?

獎勵問題,如果有人知道高度變量在'Transform'方法中的含義也將是有用的。 謝謝

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM