2011-10-19 10 views
1

私はCakePHP/mysqlを使ってアプリケーションをビルドしています。ユーザーが提供するアドレスの周りにある特定の半径の半径内の都市リストを取得しようとしています。これまでのところ、私は長い/緯度を持つデータベースにすべての米国の都市のリストを持っています。私はまた、データベースに挿入されたすべてのアドレスのlong/latを取得するためにCakePHPプラグインを使用しています。アドレスからの半径指定半径以内の都市を見つける

最後の部分はどのようにすればよいですか?私はGoogleマップのAPIを初めて使いましたが、1日に何回クエリを作成するかという制限があるようです。私が考えることができると思う唯一の方法は、住所からの距離を調べ、それをデータベースのすべての都市と比較し、指定された半径内にあればそれを選択することです。これはデータベース集中型であり、クエリクォータを一度に渡すように思えます。

アイデア?

+0

指定した緯度/経度から1マイルの都市を数学的に求めるか、このデータのGoogleマップを表示しますか? – Ryre

+0

私は地図は必要ありません。緯度/経度から一定の距離だけ離れた都市リストです。運転距離は最適ですが、直線も同様に機能します。 –

+0

http://stackoverflow.com/questions/7718785/mysql-calculating-distance-simple-solution –

答えて

0

特定のポイント(都市)が特定の緯度/経度を中心とした円内にあるかどうかを調べようとしているようです。ここにはsimilar questionがあります。

各都市にわたってループを実行し、それが次の条件を満たすかどうかを確認:

IF((X-center_x) +(Y-center_y) < =半径を)

これが遅すぎる場合は、lat/lonの丸めに基づいてルックアップに切り替えることができます。より多くの価値を事前に計算すればするほど、あなたはもっと正確な価値を得ることができます。

関連する問題