13

選択した国の都市リストを取得するのに適した次のjQueryコードがあります。

var city;   var place;

$('#city').on('focus',function(){
    input = this, options = {
        types: ['(cities)'],
        componentRestrictions: {
            country: $('#country option:selected').val()
            }
    };
    city = new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(city, 'place_changed', function() {
        place = city.getPlace();
        $(input).val(place.address_components[0].long_name);
    })
})

基本的に、人が場所を選択すると、入力ボックスの値が国を含まない「都市」の値に置き換えられます。

ユーザーがすでに国を選択している場合、ドロップダウンメニューに表示されるのは少しばかげているように見えます。結果を国に制限する値City, Countryを定義した場合、都市名だけを表示できるかどうか誰かが知っていますか?componentRestrictions

選択が少し行われた後、私はそれを設定する私の現在の方法を見つけます...本当にゴミ...

4

4 に答える 4

24

Google API を呼び出すときは、属性「region」を指定します。

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&key=your_key&language=fr&region=FR"></script>

次に、Autocompleteオブジェクトを作成するときに、指定componentRestrictionした地域が反映されるように、属性に国を指定します。

    新しい google.maps.places.Autocomplete(
        $("#my-input-field").get(0),
        {
            componentRestrictions: {country: "fr"},
            タイプ: ["(地域)"]
        }
    );

于 2014-02-10T13:29:51.760 に答える
7

また、オートコンプリート アイテムの最後のスパン (=状態) を隠す css で自分を助けることもできます。

.pac-item > span:last-child {
    display: none;
}
于 2014-07-03T19:18:48.843 に答える
3

簡単な答えは次のとおりです: の応答コンテンツはAutocompleteGoogle によって制御されており (コメントの 1 つでこれについて言及しています)、Autocompleteapi-docは、プレースホルダー テキストを変更する以外に、表示される応答テキストをカスタマイズする方法を提供しません。開発ガイド. あなたが使用している解決策は、あなたが持っている最良の選択肢についてです(少し反応的ですが、本当に「ゴミ」かどうかはわかりません)。

それ以外に、そのアプローチに満足できない場合は、いつでも独自の入力領域を作成して、要求と応答を完全に制御することができます。Places Library dev-guideを直接使用して、表示されるすべてのものを完全に制御できます。

于 2012-05-21T14:03:52.620 に答える
1

100 ミリ秒待ってから、テキスト ボックスを目的のコンテンツに置き換えます。

私の場合を除いて、空白のボックスが必要ですが、スペースを 1 つ挿入します。

于 2013-11-20T03:13:26.713 に答える