查找附近的邮政编码与基础邮政编码
问题描述:
这是参照了这个问题: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.)