0

不均一な場所の大きなテーブルから場所エンティティ (「マディソン スクエア ガーデン」、「サン ディエゴ動物園」など) を抽出しています。新しいテーブルで複数のエンティティを回避しようとしています。信頼できる住所はありませんが、ローカル範囲内の住所を抽出しようとしています。

これは、30km の地理的範囲内で類似した名前を数えて照合することで行っています。

私は地理コード化された都市テーブルを調べており、都市ごとに緯度/経度の範囲を作成し、その範囲内の場所の名前を抽出しています。

例としてマディソン スクエア ガーデンを使用します。会場は、都市テーブル内の異なる都市から複数回重複します。たとえば、マンハッタン、ニューアークなどはすべて NYC の範囲と重複する可能性が高く、NYC の一部のプロパティでは複数のエントリが発生する可能性があります。

範囲を狭い範囲に設定することはできません。場所が見つからないか、さらに悪いことに、通り/都市/ジオコーディングされた適切な場所がないことが多いため、より多くのエントリが作成されることになります (ただし、30 km の範囲は機能するようです)。かなりよく)。

ジオハッシュにより、重複を見つけて複数のエントリを回避できる境界ボックスを作成できるようになることを望んでいましたが、私が見つけたものに基づいているとは思えません。

理想的には、セルに入れることができるハッシュまたはその他の値を探していると思います。一意の場所の名前/ハッシュを保存して、mysql が単一の場所に対して複数のエントリを作成しないようにします。

各エントリの適切な番地はありません (いくつかありますが)。そのため、番地レベルの精度を取得し、範囲を使用しないという選択肢は実際にはないようです。また、一貫した都市名がないため、最終的には NYC、ニューヨーク、マンハッタンなどになります。しかし、私の都市テーブルは、ニューヨークを含めて優れていますが、NYC は含まれていません。

_--------------EDITED-------------------- Geohash.org をもう一度見た後、私はオンになっていると思います少し粒度が欠けているだけです。ハッシュの最初の 2 文字を取得すると、大きすぎる範囲内で一貫性が保たれます。たとえば、ビクトリア、紀元前からポートランドまでのすべて、または最初の 2 文字がすべて「C2」です。ただし、3 文字のソリューションでは、NYC は 'dr5' で始まり、Newark もそうですが (これは良いことです)、Hackensack は 'dr7' です。さらに悪いことに、バノーバー、紀元前。は「C2b」ですが、リッチモンド bc の郊外は「C28」です。

4

1 に答える 1

1

緯度/経度の座標を取り、最寄りの都市を返す同様のサービスを構築しました。http://www.globixdata.com/のデータベースを使用しました。このデータベースには、都市名とその緯度/経度の座標、およびおおよその人口などの関連する可能性のあるその他のデータが含まれています。住所またはポイントが都市の境界にある場合、100%正確な結果が得られない場合があります。

私はデータベースの代金を支払いましたが、少し調べれば、オンラインで無料で似たようなものを見つけることができるかもしれません。

于 2010-03-10T03:34:26.547 に答える