C#窗体利用经纬度进行距离计算
时间: 2023-06-18 08:05:30 浏览: 149
根据经纬度计算距离 程序
4星 · 用户满意度95%
要计算两点之间的距离,可以使用 Haversine 公式。以下是一个 C# 窗体应用程序示例,可以计算两个经纬度之间的距离:
```csharp
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double lat1 = double.Parse(textBox1.Text); // 第一个点的纬度
double lon1 = double.Parse(textBox2.Text); // 第一个点的经度
double lat2 = double.Parse(textBox3.Text); // 第二个点的纬度
double lon2 = double.Parse(textBox4.Text); // 第二个点的经度
double R = 6371; // 地球半径,单位为千米
double dLat = (lat2 - lat1) * Math.PI / 180; // 纬度差,转换为弧度
double dLon = (lon2 - lon1) * Math.PI / 180; // 经度差,转换为弧度
double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
Math.Cos(lat1 * Math.PI / 180) * Math.Cos(lat2 * Math.PI / 180) *
Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
double distance = R * c; // 计算距离,单位为千米
textBox5.Text = distance.ToString("0.00"); // 显示结果,保留两位小数
}
}
```
在窗体中,我们可以放置四个文本框和一个按钮,用于输入两个经纬度和计算距离。在按钮的 Click 事件中,我们将经纬度转换为弧度,然后使用 Haversine 公式计算距离,并将结果显示在第五个文本框中。
阅读全文