2009-10-12 3 views
40

Google Maps APIとJQueryを使用する私は、入力時にそこに入力されたアドレスを自動完成するアドレスフィールドを持っていたいと思います。どのようにこれを達成することができましたか?google maps apiでオートコンプリートアドレスフィールドを作成するにはどうすればよいですか?

+0

は、この質問を参照してください:http://stackoverflow.com/questions/1323661/location-search-autocomplete-that-integrates-with-bing-google-geocodingここ –

+0

は、Google MapsのAPIオートコンプリートの前に(例えば、あります) http://gerger.co/blog/2011/02/17/google-maps-api-v3-location-search-with-jquery-autocomplete-plugin/ – azizunsal

+0

これはかなり良いです:http:// gmap3。 net/examples/address-lookup.html –

答えて

59

GoogleマップAPI v3では、アドレスの自動補完機能が追加されました。

APIドキュメントはここにある:http://code.google.com/apis/maps/documentation/javascript/reference.html#Autocomplete

良い例はここにある: http://code.google.com/apis/maps/documentation/javascript/examples/places-autocomplete.html

+9

配送先住所のエントリとしてこれを使用するように注意してください。 たとえば、 '11960 iowa avenue#10、los angeles ca'と入力してみてください。この住所にはアパートが必要ですが、そのAPIはそのことを知らず、実際にその住所に行くことさえできません。私が試した他のアドレスはアパートを必要とします#作業はできますが、データベースには動作しないものがあります。まっすぐな地図の場合は大丈夫ですが、有効な住所が –

+0

に届くとは思いません。私は同意します。それはかなり基本的なものであり、誰にも合わないでしょう。しかし、セットアップは非常に簡単で、うまく機能します。 – alt

+4

あなたはログイン後のサイトで最低$ 10,000 /年(Google Maps API v3 for Businessの底値)を支払うことなく使用することはできません –

2

GoogleマップAPIは既知のアドレスをジオコーディングするのに最適ですが、一般にオートコンプリートスタイルの操作に適したデータを返します。ジオコーディングクエリの制限を非常に早く食いつぶすような方法でAPIにヒットしないようにしてください。

3

少し漂っていますが、ユーザーがルックアップテーブルを使用して郵便番号を入力すると、米国の市/州またはCA市/プロバンスを自動入力するのは比較的簡単です。

  1. ユーザーが入力:

    はあなたが記入郵便(郵便番号)コード:状態、街ここ

    は、あなたがあなたの意志に曲がるように人々を強制することができれば、あなたがそれを行うことができる方法です(州、カナダ)

  2. ユーザーが入力を開始します。 streetname

    あなたは:あなたが表示さオートフィル

  3. 許可アドレス番号の範囲

    ユーザー:は数

    完了

に入ります。ここで

は、人々がそれを行うのが自然である方法は次のとおりです。

  1. ユーザーは入る:アドレス数

    ます:を何

  2. ユーザーが入力を開始します:通り名

    あなた:オートフィル、国のすべての通りの膨大なリストから描画

  3. ユーザーは入る:

    あなたは:オートフィル

  4. ユーザーが入力:状態を/プロバンス

    あなた:はそれですwortいくつかの文字を自動入力しますか?

  5. お客様:自動郵便(ジップ)コード、可能であれば(いくつかのコードが跨っているため)人々はこれを行うには$$$充電理由


は今、あなたは知っています。 :)

住所の場合、数字と通りの2つの部分があると考えてください。あなたが郵便番号を持っているなら、利用可能な通りを絞り込むことができますが、ほとんどの人は数字の部分を最初に入力します。これはバックワーです。

3
Below I split all the details of formatted address like City, State, Country and Zip code. 
So when you start typing your street name and select any option then street name write over street field, city name write over city field and all other fields like state, country and zip code will fill automatically. 
Using Google APIs. 
------------------------------------------------ 
<script type="text/javascript" 
src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script> 
<script type="text/javascript"> 
google.maps.event.addDomListener(window, 'load', function() { 
    var places = new google.maps.places.Autocomplete(document 
      .getElementById('txtPlaces')); 
    google.maps.event.addListener(places, 'place_changed', function() { 
     var place = places.getPlace(); 
     var address = place.formatted_address; 
     var value = address.split(","); 
     count=value.length; 
     country=value[count-1]; 
     state=value[count-2]; 
     city=value[count-3]; 
     var z=state.split(" "); 
     document.getElementById("selCountry").text = country; 
     var i =z.length; 
     document.getElementById("pstate").value = z[1]; 
     if(i>2) 
     document.getElementById("pzcode").value = z[2]; 
     document.getElementById("pCity").value = city; 
     var latitude = place.geometry.location.lat(); 
     var longitude = place.geometry.location.lng(); 
     var mesg = address; 
     document.getElementById("txtPlaces").value = mesg; 
     var lati = latitude; 
     document.getElementById("plati").value = lati; 
     var longi = longitude; 
     document.getElementById("plongi").value = longi;    
    }); 
}); 

0

あり、このようなSELECT2などいくつかの素晴らしいライブラリがありますが、それは私の必要性と一致していません。 単純な入力テキストを使用するために、最初からサンプルを作成しました。

私はブートストラップとJQueryのみを使用します。

は、それは簡単ですが、GoogleのAPIの例はあなたがマップが入力した場所を表示するために得ることができる方法と詳細な説明を与えることが便利

`https://jsfiddle.net/yacmed/yp0xmdf5/` 
1

なります願っています。オートコンプリート機能の場合のみ、このようなことができます。

まず、GoogleプレイスAPIウェブサービスを有効にします。 APIキーを取得します。 htmlファイル内のscriptタグでそれを使用する必要があります。

<input type="text" id="location"> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=[YOUR_KEY_HERE]&libraries=places"></script> 
<script src="javascripts/scripts.js"></scripts> 

オートコンプリートクラスを読み込むためにスクリプトファイルを使用します。 scripts.jsファイルは次のようになります。

// scripts.js custom js file 
$(document).ready(function() { 
    google.maps.event.addDomListener(window, 'load', initialize); 
}); 

function initialize() { 
    var input = document.getElementById('location'); 
    var autocomplete = new google.maps.places.Autocomplete(input); 
} 
関連する問題