1

http://www.ordnancesurvey.co.uk/oswebsite/opendata/index.htmlから英国の郵便番号リストをダウンロードし、MSSQL 2005 データベースにインストールしました。テーブルは、郵便番号、緯度、経度で構成されています。特定の緯度/経度に最も近い郵便番号を取得するための効率的な方法が必要です。2 点間の距離を計算し、最小のものを選択することは、各クエリのすべてのデータを循環することを意味します。エントリー数は約170万点。ありがとう。

4

1 に答える 1

2

最初に「円近似」を使用してクエリをフィルタリングすることにより、計算を固定できます。指定された半径内のすべての郵便番号を返しますdelta。基本的なクエリは次のようになります。

SELECT postcode, x, y FROM table WHERE ((x BETWEEN x - delta AND x + delta) AND (y BETWEEN y - delta AND y + delta))

そして今、残っているデータの量はもう少し管理しやすいはずです.

また、「ミッション クリティカル」なものを開発している場合は、必ずPostGISを参照してください。あなたが遭遇するかもしれないいくつかの問題を彼らはすでに解決しているかもしれません... ;)

于 2010-08-14T06:59:44.943 に答える