【发布时间】:2010-10-26 02:10:41
【问题描述】:
我需要从一个邮政编码中找到一定范围内的所有邮政编码。我在数据库中有所有的邮政编码纬度/经度。
我在网上找到了两个略有不同的公式。哪一个是正确的?
一级方程式:
def latRange = range/69.172
def lonRange = Math.abs(range/(Math.cos(Math.toRadians(zip.latitude)) * 69.172));
def minLat = zip.latitude - latRange
def maxLat = zip.latitude + latRange
def minLon = zip.longitude - lonRange
def maxLon = zip.longitude + lonRange
公式2:(除以下外与公式1相同:)
def lonRange = Math.abs(range/(Math.cos(zip.latitude) * 69.172));
(第二个没有Math.toRadians)
在获得最小/最大纬度/经度后,我打算使用 between 条件搜索数据库表。 哪个公式是正确的?
【问题讨论】:
-
你应该用谷歌搜索“Haversine forumula”。充其量,您上面的代码正在确定一些矩形,我认为您想确定围绕中心点的圆圈内的邮政编码。
标签: geolocation geospatial haversine