5

https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete

上記のグーグルプレイスのオートコンプリートデモURLに似たページがあり、バッキンガム宮殿と入力すると表示されます。の結果が返されます

  1. バッキンガムパレスロード、ロンドン、イギリス
  2. バッキンガム宮殿ショップ、バッキンガムパレスロード、ビクトリア、ロンドン、イギリス

など。結果からイギリスのロンドンを削除するにはどうすればよいですか。

4

3 に答える 3

2

グーグルはすぐにそれを整理することに興味がないようです。私は以下に頼らなければなりませんでした、他の人のニーズにも十分かもしれません:

document.addEventListener('DOMNodeInserted', function(event) {
    var target = $(event.target);
    if (target.hasClass('pac-item')) {
        target.html(target.html().replace(/, Australia<\/span>$/, "</span>"));
    }
});

pac-itemこれは、各提案で使用されるクラスであることに注意してください。使用される他のクラスについては、 Googleリファレンスを参照してください。クラスのあるコンテナはpac-container、表示されていないときにアイテムをドロップし、表示されたときに新しいアイテムを追加するようです。したがって、これらpac-itemsがDOMに追加されている場合は、提案が表示されようとしていて、表示されようとしていることを意味しpac-containerます。

ちょうどこれを解決したので、改善の余地があります。

これも完全な解決策ではありません。国を削除して提案を選択した場合でも、オートコンプリートによって国がジオコーディングに追加されます。place_changedそれを変更するには段階が遅すぎるので、答えの一部として上記の解決策を参照してください。残りがわかったら、これをもう一度更新します。

- - アップデート

個人的には、修正された提案が選択された後もオートコンプリートが国を表示するという問題を回避する方法を見つけることができなかったため、Googleオートコンプリートをまったく使用しませんでした。より使いやすいアプローチは、Twitter typeaheadを使用し、提案のみを取得するためにgoogleAPIを使用することでした。これにより、提案をより細かく制御できましたが、失われた機能を補うために、より多くの手作業が必要になることは明らかです。

于 2014-08-20T00:55:06.860 に答える
1

これが、jQueryのオートコンプリートで機能するようにした方法です。それが誰かを助けることを願っています。

   $("#Search").autocomplete({
       source: function (request, response) {
           var options = {
               input: request.term,
               types: ['(cities)'],
               region: 'US',
               componentRestrictions: { country: "us" }
           };
           function callback(predictions, status) {
               for (var i = 0, prediction; prediction = predictions[i]; i++) {
                   results.push(prediction.description.replace(/, United States$/, ""));
               }
               response(results);
           }
           var service = new google.maps.places.AutocompleteService();
           service.getPlacePredictions(options, callback);
           var results = [];
       }
   });
于 2015-06-19T16:20:37.723 に答える
0

これは、結果を手動で処理しないと不可能です。便利な機能だと思われる場合は、PlacesAPI-FeatureRequestを提出してください。

于 2012-11-09T04:51:44.640 に答える