使用 NMEA2OSG Class – C# 将 WGS84 Lat Lon 坐标转换为 OSGR
Convert WGS84 Lat Lon coordinates to OSGR using NMEA2OSG Class – C#
我需要将 WGS84 Lat Lon 坐标系(基本上是 Google 地图和 Bing 使用的坐标系)转换为英国条例测量坐标系。
由于计算相当复杂(关于椭球体和投影等),所以有一个现成的 C# class,通常称为“NMEA2OSG”。
Link 到 NMEA2OSG Class:NMEA2OSG Class
我正在努力理解如何使用它 class。虽然有几个关于如何将 WGS84 转换为 OSGR 的问题,但没有关于如何使用 NMEA2OSG class 的问题。
我试过 运行 第二种方法,这似乎是正确的方法,因为它接受长纬度小数作为输入。尝试如下:
NMEA2OSG nMEA2OSG = new NMEA2OSG();
bool coord = nMEA2OSG.Transform(52.3, -0.1, 50);
但是,这个方法只有 return 一个布尔值,所以我可以推测我需要从 class 的实例访问该方法的输出。很遗憾,我不知道该怎么做。
任何人都可以建议如何 return 从 NMEA2OSG class 转换坐标吗?
奖金问题,如果有人知道高度变量意味着在“转换”方法中也很有用。
谢谢
NMEA20SG
class 有通知您结果的事件。这是设置它的代码:
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
我需要将 WGS84 Lat Lon 坐标系(基本上是 Google 地图和 Bing 使用的坐标系)转换为英国条例测量坐标系。 由于计算相当复杂(关于椭球体和投影等),所以有一个现成的 C# class,通常称为“NMEA2OSG”。
Link 到 NMEA2OSG Class:NMEA2OSG Class
我正在努力理解如何使用它 class。虽然有几个关于如何将 WGS84 转换为 OSGR 的问题,但没有关于如何使用 NMEA2OSG class 的问题。
我试过 运行 第二种方法,这似乎是正确的方法,因为它接受长纬度小数作为输入。尝试如下:
NMEA2OSG nMEA2OSG = new NMEA2OSG();
bool coord = nMEA2OSG.Transform(52.3, -0.1, 50);
但是,这个方法只有 return 一个布尔值,所以我可以推测我需要从 class 的实例访问该方法的输出。很遗憾,我不知道该怎么做。
任何人都可以建议如何 return 从 NMEA2OSG class 转换坐标吗?
奖金问题,如果有人知道高度变量意味着在“转换”方法中也很有用。 谢谢
NMEA20SG
class 有通知您结果的事件。这是设置它的代码:
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