我需要生成一个包含最小和最大纬度和经度值的边界框,以便我可以返回给定半径内的地址。
我在下面有两个函数<>,用于返回我需要 +/- 到经纬度坐标的范围,以建立边界框。但是我不认为数学是 100%
我正在使用 Haversine 公式生成我的距离计算结果,这似乎很准确。我也研究了 Vincenty 的距离公式,但对我的需求来说太过分了。
我的问题是我希望我的搜索结果与 Haversine 一样准确,因为我 +/- 到 lon lat 坐标的范围考虑了椭圆体曲率或地球。
好的,这是我的 func<>...请注意我不是数学教授 :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)
)
);
最佳答案
关于c# - 使用 C# 将半径添加到经度和纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106887/