需要找到距离指定邮政编码的半径范围内的所有邮政编码

时间:2014-06-05 17:40:29

标签: java android computational-geometry zipcode

我知道如何通过邮政编码获得经度和经度。 我还有一个包含多个位置及其邮政编码和坐标的数据库。

我希望根据半径找到纬度和经度的限制,然后将它们与我的数据库中的可能性相匹配。

我读到了关于thersrsine?式。但是,我不理解它并寻找如何找到纬度和经度极限的解释。

2 个答案:

答案 0 :(得分:1)

你的问题对我来说有点混乱,如果你想找到一个邮政编码的限制,如使用lat,更合适的长边界或城市或县或地区的纬度,长边界 - 这是一个复杂的问题,意味着在数据库中创建结构来表示所有点,以创建描述区域边界的多边形。

此外,如果您想查找纬度较长的邮政编码,可以使用Google的地理编码API。这是使用HTTP请求进行查询的简单资源 参考:https://developers.google.com/maps/documentation/geocoding/?hl=nl

在Haversine公式中,它用于准确描述弯曲空间上两点之间的距离,如果您要解释距离,则需要使用此公式(一个示例是两个地图地址之间的距离,您可以然后关联每个地图地址的lat,long值,然后根据弯曲空间的半径计算距离。)

祝你好运!

答案 1 :(得分:1)

Haversine 用于地理计算,弯曲的地球会影响距离。特别是对于短距离无关紧要。

给定地球半径R:

Δ y = (ΔLatitude mod 360)  * 2π R / 360

但是当达到极点时,Δ经度变为0(纬度=±90)。

Δ x = (ΔLongitude mod 360)  * 2π R * (90 - |avg latitude|) / 90 / 360
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~

(带下划线的部分应该类似cos(avg latitude in radians),但SQL很少提供余弦函数。)

因此

distance = √(Δx² + Δy²)