小编kia*_*749的帖子

使用半正弦公式计算地理坐标距离给出了错误的输出

我正在 C# 中创建一个距离计算器,使用半正弦方程来计算经度和纬度之间的距离,但它给出了错误的输出,谁能明白为什么?第一个 long 和 lat 值是针对威尔士(班戈)的一个地方,另一个是针对英格兰(曼彻斯特)的一个地方这里是代码:

using System;

public static class Program
{
    static double toRadians(double angle)
    {
        return (angle * Math.PI) / 180;
    }

    static double CalcDistance(double lon1, double lon2, double lat1, double lat2)
    {
        lon1 = toRadians(lon1);
        lon2 = toRadians(lon2);
        lat1 = toRadians(lat1);
        lat2 = toRadians(lat2);
        //haversine formula
        double dlat, dlon;
        dlat = lat2 - lat1;
        dlon = lon2 - lon1;
        double a = Math.Pow(Math.Sin(dlat / 2), 2) *
            Math.Cos(lat1) * Math.Cos(lat2) *
            Math.Pow(Math.Sin(dlon / 2), 2); …
Run Code Online (Sandbox Code Playgroud)

c# latitude-longitude haversine

3
推荐指数
1
解决办法
109
查看次数

标签 统计

c# ×1

haversine ×1

latitude-longitude ×1