检查坐标是否在区域内

时间:2013-02-20 13:00:41

标签: c# coordinates latitude-longitude area

我遇到了房地产问题。

我有一个真实的地址,我正在转换为地球坐标(例如“伦敦眼”到“-0.119543; 51.503324”)。

我还要搜索一个周边或区域(例如“10”是“10公里”)。

现在我得到了一堆坐标(地球上完全随机),我想检查当前坐标是否在伦敦眼坐标的10公里范围内。

有没有解决方案,或者我甚至面对x-y-problem

3 个答案:

答案 0 :(得分:1)

这似乎可以帮到你: http://www.doogal.co.uk/dotnetcoords.php

它基于http://www.jstott.me.uk/jcoord,允许点之间的距离计算。不要相信我的话,也没用过。

答案 1 :(得分:1)

您可以使用Haversine公式计算两点之间的距离:

http://www.stormconsultancy.co.uk/blog/development/code-snippets/the-haversine-formula-in-c-and-sql/

Nearest GPS coordinate based on distance from a given point

然而,对于速度,我认为您需要计算最大/最小经度和纬度值(即伦敦眼周围的方形),因为如果有很多要检查的点,这将更快地计算。然后在这个小的点子集(在你的方块内)使用Haversine公式来找到10公里内的点。

答案 2 :(得分:0)

这个问题有一个众所周知的解决方案。 Haversine_formula

我认为您也可以搜索相同的C#代码。希望它有所帮助。