私はあなたに足がかりを与えることができますが、この場合はそれについてです。
$distance = 10;
$latitude = 37.295092;
$longitude = -121.896490;
$sql = "SELECT loc.*, (((acos(sin(($latitude*pi()/180)) * sin((`latitude`*pi()/180))+cos(($latitude*pi()/180)) * cos((`latitude`*pi()/180)) * cos((($longitude - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` FROM table_with_lonlat_ref loc HAVING distance < $distance"
所有している2つのテーブル間でJOINを実行し、距離を1または2に減らすクエリを作成すると、概念的には、必要なほぼすべての緯度と経度の組み合わせを思い付くことができます。または、米国のすべての郵便番号があり、緯度/経度もあるDBを見つけて、一致した郵便番号に基づいて1つのテーブルをクエリして別のテーブルに挿入することもできます。私はどこかにそのような郵便番号DBを持っています。
また、 http://www.maxmind.com/app/geoliteを提案するかもしれませんが、それはあなたがそれを支払うことを望んでいるよりも決して完全ではなく、それは頻繁に変更されます。これにより、訪問者のIPに基づいて参照ポイントとして使用できるほぼすべての緯度/経度の組み合わせを取得できます(IPが1つまたは2つの町のハブから蒸気を発する可能性があるため、場合によっては少しずれます。しかし、何もないよりはましで、サーバーが処理できる制限のみを提供し、maxmindの使用条件以外のAPI制限について心配する必要はありません。
とにかく、全体として、私はこの組み合わせをしばらくの間多くのサイトで使用してきましたが、これまで多くの問題を考え出すことはまだありません。私はあなたの質問に対する直接の答えではないことを知っていますが、それがあなたを解決策に導くことを願っています