查找附近的邮政编码与基础邮政编码

问题描述:

这是参照了这个问题:Find UK PostCodes closest to other UK Post Codes by matching the Post Code String查找附近的邮政编码与基础邮政编码

--User wants to get all postcodes nearby B193SH 
-- Postcode = 'B193SH' 
-- Latitude = 52.488460 
-- Longitude = -1.895690 

SELECT [HouseNumber], 
      [Street], 
      [Area], 
      [PostCode], 
      [Latitude], 
      [Longitude], 
FROM [dbo].[Address] 
WHERE ([Latitude] BETWEEN (52.488460 - 0.100000) AND (52.488460 + 0.100000)) AND 
      ([Longitude] BETWEEN (-1.895690 - 0.100000) AND (-1.895690 + 0.100000)) 
ORDER BY [PostCode] 
GO 

执行这个查询,我得到了几个结果。但问题在于,经纬度/经纬度的差异(米/英里)是+/- 0.100000?

我是否应该尝试通过使用基本邮政编码的前三个字母(即'B19')来查找近距离邮编?

请参阅参考问题了解我的scenerio的完整细节。

谢谢!

鉴于地球的近似半径为6378.1公里。

纬度(和经度,沿赤道时)

2 * pi * 6378.1 * 0.1/360 = 11.1319 km (4 d.p.) 

经度当沿X度北或南

例如,在50度,当:

2 * pi * 6378.1 * cos(50) * 0.1/360 = 7.1554 km (4 d.p.)