0

さまざまな場所のリストを持つ Web サイト用の MySQL データベースをセットアップしようとしています。このリストにロケーションベースの検索を設定することはできますか? たとえば、誰かが "Albany, NY, USA" を検索した場合、データベースに Albany からの結果がなければ、近くの "New York, NY" からの結果があるはずです。

緯度と経度の座標を使用するのが適切な方法だと思います。しかし、ユーザーが任意の都市に入った場合、その都市の地理座標をウェブサイト用に取得する方法はありますか?

また、ユーザーがクエリのスペルを間違えた場合でも、情報を適切に処理する方法はありますか?

4

3 に答える 3

0

Google API では、マッピング以外の目的でジオコーディングを使用することは許可されていないため、米国内のすべての都市とその郵便番号を含むテーブルをデータベースに作成する必要があります。ここで利用できる優れた無料のリソースがあります。

http://federalgovernmentzipcodes.us/

都市名のスペルについては、jquery を使用して、データベース内の利用可能な都市に基づいてオートコンプリート フィールドを作成します。こうすることで、ユーザーが検索可能なアイテムを常に入力していることを確認できます。

于 2013-08-07T16:35:13.253 に答える
0

最初のオプションでは、php で次のようなクエリを使用できます。

$sql = "SELECT DISTINCT * FROM (`yourtable`)
WHERE (`cityname` LIKE '%".$_POST('search')."%')"

このクエリは、「検索」という検索フィールドに入力した単語で検索します

たとえば、次のようになります。

<input type="search" name="search">

質問の 2 番目の部分では、検索用語に対してもう少し複雑なクエリを使用できます。

たとえば、最初の 2 文字を一致させます。

近くの場所を検索する場合は、Google Geolocation API を使用して、データベース内の 2 つの行の間の距離を計算できます。

https://developers.google.com/maps/documentation/business/geolocation/

于 2013-08-07T13:23:39.857 に答える