Google マップ API の場所のオートコンプリートに問題があります。getPlaces()
ドキュメントに記載されている
ように機能していないようです:オートコンプリート
詳細が正常に取得された場合、ユーザーが選択したプレイスの詳細を返します。それ以外の場合は、name プロパティが入力フィールドの現在の値に設定されたスタブ Place オブジェクトを返します。
例として次のコードを取り上げます。
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=places"></script>
<script type="text/javascript">
initialize = function () {
var input = document.getElementById('locationsearch');
var options = {
types: ['(cities)']
};
autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initialize);
submitform = function () {
searchplace = autocomplete.getPlace();
console.log(searchplace.name);
}
</script>
</head>
<body>
<form onsubmit="submitform();return false;">
<input type="text" id="locationsearch"/>
<input type="button" value="search" onclick="submitform(); return false;"/>
</form>
</body>
</html>
この単純なコードは要素でオートコンプリート機能を使用しinput="text"
、その横にあるボタンが押された後、コンソールに場所名を記録する必要があります。私が抱えている問題は、input
要素が不完全な場所を選択したときです。関数は、要素の現在の値に設定された name プロパティを持つオブジェクトgetPlace()
を返すことを期待しています。代わりに、コンソールがエラーをログに記録しています:
。place
input
Uncaught TypeError: Cannot read property 'name' of undefined
場所のオートコンプリートを使用して間違っていることがありますか、それともこの機能が正しく機能していないだけですか? ありがとうございました。