从纬度,经度获取邮政编码
Posted
技术标签:
【中文标题】从纬度,经度获取邮政编码【英文标题】:get postcode from latitude,longitude 【发布时间】:2010-08-14 06:38:39 【问题描述】:我从http://www.ordnancesurvey.co.uk/oswebsite/opendata/index.html 下载了英国邮政编码列表,并将其安装在 MSSQL 2005 数据库中。该表由邮政编码、纬度和经度组成。我需要一种有效的方法来获取最接近给定纬度/经度的邮政编码。计算两点之间的距离并选择最小的距离意味着循环遍历每个查询的所有数据。大约有 170 万个条目。谢谢。
【问题讨论】:
请使用 Google 进行邻近搜索 【参考方案1】:您可以通过首先使用“圆形近似”过滤查询来加快计算速度 - 即。返回确定半径delta
内的所有邮政编码。基本查询应该是这样的:
SELECT postcode, x, y FROM table WHERE ((x BETWEEN x - delta AND x + delta) AND (y BETWEEN y - delta AND y + delta))
现在剩下的数据量应该更易于管理。
另外,如果您正在开发一些“关键任务”,请务必查看PostGIS。可能他们已经解决了您可能遇到的一些问题... ;)
【讨论】:
以上是关于从纬度,经度获取邮政编码的主要内容,如果未能解决你的问题,请参考以下文章
在不使用地图 android 的情况下从邮政编码中获取纬度和经度