使用C#将半径添加到经度和纬度

时间:2010-01-21 04:17:16

标签: c# coordinates haversine

我需要生成最小和最大纬度和经度值的边界框,这样我就可以返回给定半径内的地址。

下面有两个func<>来将我需要的范围+/-返回到lon lat坐标以建立边界框。但是我不认为数学是100%

我正在使用Haversine公式来生成我的距离计算,这似乎是准确的。我调查了Vincenty公式的距离,但是我的需求太过分了。

我的问题是我希望我的搜索结果与Haversine一样准确,因为I +/-到lon lat坐标的范围考虑了椭球曲率或地球。

好的,这是我的功能<>'s ...请注意我不是数学教授:o)

static Func<double, int, double> GetLatitudeRange = (latitude, distance) => (180.0 / Math.PI) * (distance / EARTH_RADIUS_IN_KM);


static Func<double, double, int, double> GetLongitudeRange = (longitude, latitude, distance) =>
            (
                Math.Asin(
                    Math.Sin(distance / EARTH_RADIUS_IN_KM) / Math.Cos(latitude)
                    )
            );

1 个答案:

答案 0 :(得分:0)

查看zipcodeworld