1

ユーザーが一定の距離内のアイテムを検索できるように、自分のサイトで検索エンジンのオプションを作成したいと考えています。たとえば、10 マイル以内または 20 マイル以内のアイテムを検索できます。

ユーザーは郵便番号を入力する必要がありますが、アイテムの場所の郵便番号もあり、検索にヒットしたら、2 つの場所の間の距離をマイル単位で計算し、結果を距離順に表示する必要があります。最も近いアイテムが最初の結果です。マップの「ルートを取得」オプションを使用して距離をマイル単位で計算するための Google API はありますか? または、データベースに追加できるものはありますか?

4

1 に答える 1

0

Google Geocoding APIは、郵便番号の検索を提供し、住所として郵便番号だけを指定しても、国、都市、緯度/経度を提供できます。緯度/経度を取得したら、距離を簡単に計算して結果を並べ替えることができます。

http://code.google.com/apis/maps/documentation/geocoding/#GeocodingRequests

注:GeocodingAPIはGoogleマップと組み合わせてのみ使用できます。地図に表示せずに結果をジオコーディングすることは禁止されています。許可されている使用法の詳細については、リンクを参照してください。

したがって、たとえば、郵便番号94043の検索を要求する場合は、次のURLを呼び出します。

http://maps.googleapis.com/maps/api/geocode/json?address=94043&sensor=false

これは、次のようなJSONで発生します。

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            },
           ...
          "location" : {
               "lat" : 37.4284340,
               "lng" : -122.07238160
          },
          "location_type" : "APPROXIMATE",
         ...
   "status" : "OK"
 }

何らかの理由でGoogleAPIを使用できない場合は、GoogleGeocoder以外のAPIとサービスのリストを以下に示します。

于 2012-12-08T10:28:31.313 に答える