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

Posted

技术标签:

【中文标题】使用 C# 将半径添加到经度和纬度【英文标题】:Add radius to Longitude and Latitude with C# 【发布时间】:2010-01-21 04:17:16 【问题描述】:

我需要生成一个包含最小和最大纬度和经度值的边界框,以便我可以返回给定半径内的地址。

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

我正在使用 Haversine 公式来生成我的距离计算,这似乎可以正常工作。我也研究了 Vincenty 的距离公式,但出于我的需要,这太过分了。

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

好的,这是我的函数的...请注意我不是数学教授: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)
                    )
            );

【问题讨论】:

如果您需要额外的精度,请查看en.wikipedia.org/wiki/Great-circle_distance。 【参考方案1】:

看看zipcodeworld

【讨论】:

作者为什么要看那个网站?

以上是关于使用 C# 将半径添加到经度和纬度的主要内容,如果未能解决你的问题,请参考以下文章

MySQL计算纬度和经度半径[重复]

使用经度和纬度查找给定距离内的所有附近客户

使用纬度和经度的40公里半径[重复]

使用java程序查找具有指定半径的给定纬度和经度(即位置)的周围纬度和纬度值

在地图上围绕纬度/经度绘制时间半径

python:使用纬度和经度查找提供位置半径内的位置的优雅方法