用C#实现一个坐标转换方法
时间: 2023-07-12 12:35:28 浏览: 233
C#实现坐标转换
下面是一个简单的 C# 坐标转换方法的示例,将一个点的坐标从 WGS84 坐标系(经纬度)转换为 Web Mercator 坐标系(平面坐标系):
```csharp
using System;
namespace CoordinateConversion
{
class Program
{
static void Main(string[] args)
{
// 定义经纬度坐标
double longitude = 121.5237;
double latitude = 31.2060;
// 转换为 Web Mercator 坐标系
double[] webMercator = Wgs84ToWebMercator(longitude, latitude);
// 输出 Web Mercator 坐标值
Console.WriteLine("Web Mercator X: " + webMercator[0]);
Console.WriteLine("Web Mercator Y: " + webMercator[1]);
}
// WGS84 坐标系转 Web Mercator 坐标系
static double[] Wgs84ToWebMercator(double lon, double lat)
{
double[] mercator = new double[2];
double x = lon * 20037508.34 / 180;
double y = Math.Log(Math.Tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
mercator[0] = x;
mercator[1] = y;
return mercator;
}
}
}
```
在这个示例中,我们定义了一个 Wgs84ToWebMercator 方法,它接受经纬度坐标的经度和纬度作为参数,返回 Web Mercator 坐标系下的 X 和 Y 坐标。在方法中,我们使用了一些常量和公式来执行坐标转换。最终,我们将转换后的 X 和 Y 坐标存储在一个 double 数组中,并返回该数组。在 Main 方法中,我们调用 Wgs84ToWebMercator 方法将经纬度坐标转换为 Web Mercator 坐标,并输出转换后的坐标值。
阅读全文