1

Google Maps API を使用して、特定の郵便番号の特定の半径 (マイル単位) 内にあるすべての赤いバルーン ポイント (Google マップにピン留めされた住所) を見つける方法はありますか?

例えば...

  • 最初の入力ボックスでは、郵便番号を尋ねられます。入力してください。

  • 2 番目の入力ボックス (< オプション > のあるセクション ボックス) では、半径をマイル、10 マイル、20 マイル、30 マイルなどで指定します。

  • 次に、送信をクリックします

  • 次に、Google マップにすべての住所 (json ファイルから保存されたもの) が表示され、Google マップに赤い風船が表示されます。

このようなものを構築するのに役立つ無料の学習教材がウェブ上にありますか?

私は午前中ずっと Google マップの API を読んでいましたが、これを提供できる例は見つかりませんでした。

ありがとう!

4

2 に答える 2

2

これを実装するために従う必要のある2つの高レベルの手順は次のとおりです。

1)Google Geocoder APIを使用して、その郵便番号(またはさまざまな形式の住所!)を緯度と経度の座標に変換する必要があります。

2)次のように、ユーザーが入力した距離(5マイル、10マイルなど)に基づいてデータベースにクエリを実行するスクリプトへのGETリクエストを動的に作成します。

var searchUrl = 'phpsqlajax_search.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;

この関連する質問に対する私の回答を見て、ユーザー入力を受け取り、住所をジオコーディングできるようにします。店舗のロケーター、私の位置の使用/入力方法は?

Google Maps APIは、データベース内で特定の緯度と経度の座標に最も近いアイテムを見つけるための広範なドキュメントを提供します。ここで見つけることができます:https ://developers.google.com/maps/articles/phpsqlsearch_v3

注:ドキュメントでは、PHP、Javascript、およびMySQLを使用しています。

于 2012-07-27T17:57:48.497 に答える
2

近似と迅速な結果が必要な場合は、空間充填曲線、つまり空間インデックスを試すこともできます。たとえば、xkcd コミックのインターネット マップを見てください。ヒルベルト曲線を使用して、インターネットから地図を印刷します。次に、曲線を使用して地理的位置を変換し、最近傍検索を緩和できます。ポイント データ型と空間インデックスを使用して、多くのデータベース エンジンで同じ曲線が使用されます。

ここに JavaScript のヒルベルト曲線があります: https://github.com/chrisdew/jshilbert。空間インデックスに関するブログ: http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves。私は phpclasses.org @ hilbert-curve という php クラスを書きました。また、メルカトル図法も使用します。

于 2012-07-27T17:33:17.267 に答える