2016-10-21 16 views
0

GoogleプレイスAPIを含む問題があります。 APIキーですべてを設定しましたが、リスト/提案はうまくいきますが、提案を選択するとplace_changedイベントが発生しません。Google Places API:place_changedが実行されない

チェックフィドルは:https://jsfiddle.net/xj2d77be/3/

それは動作するはずですが、そうでない理由を私は絶対にないアイデアを持っていません。 (投稿フィドルから)

コードスニペット:

$(document).ready(function() { 
 
    var autocomplete = new google.maps.places.SearchBox(document.getElementById('mapLocation')); 
 
    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
 
    var place = autocomplete.getPlace(); 
 
    console.log(place); 
 
    }); 
 
    console.log("Initialized") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.google.com/maps/api/js?libraries=places"></script> 
 
<input type="text" id="mapLocation" />

答えて

1

はこれを試すには、これは

https://jsfiddle.net/xj2d77be/4/

$(document).ready(function() { 
    var autocomplete = new google.maps.places.Autocomplete($("#mapLocation")[0]); 
     google.maps.event.addListener(autocomplete, 'place_changed', function() { 
      var place = autocomplete.getPlace(); 
      console.log(place); 
     }); 
    console.log("Initialized") 
}); 
、私はあなたのコードを更新した動作します

使用してサーチ:

https://jsfiddle.net/xj2d77be/5/

$(document).ready(function() { 
    var searchBox = new google.maps.places.SearchBox(document.getElementById('mapLocation')); 
     searchBox.addListener('places_changed', function() { 
      var place = searchBox.getPlaces(); 
      console.log(place); 
     }); 
    console.log("Initialized") 
}); 
+0

ありがとう!しかし、なぜ "SearchBox"が機能しないのかわかりません。私は、Googleが「places_change」状態でSearchBoxを使用するサンプルを見つけました。 –

+0

@KevinLieserはこのリンクに従います。https://developers.google.com/maps/documentation/javascript/examples/places-searchbox –

+0

これは私が話しているページです:ご覧のとおり、彼らは 'var searchBox = new googleを初期化します。 mapbox.places.SearchBox(input); ' –

0

ない "place_changed" イベントやサーチのため.getPlace()機能はありません。 「places_changed」と.getPlaces()である必要があります。

Documentation:

方法

getPlaces()戻り値:なし場所はまだ見つかっていない場合はアレイ

をするには、ユーザーが選択したクエリ、またはnullを返します。 places_changedイベントで使用します。

イベント

引数places_changed:なし

ユーザーがクエリを選択したときに、このイベントが発生し、getPlacesは、新しい場所を取得するために使用する必要があります。

注:.getPlaces()関数は配列ではなく、単一の場所を返します。

$(document).ready(function() { 
 
    var autocomplete = new google.maps.places.SearchBox(document.getElementById('mapLocation')); 
 
    google.maps.event.addListener(autocomplete, 'places_changed', function() { 
 
    var place = autocomplete.getPlaces(); 
 
    console.log(place); 
 
    }); 
 
    console.log("Initialized") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.google.com/maps/api/js?libraries=places"></script> 
 
<input type="text" id="mapLocation" />