我正在使用带有谷歌地点自动完成功能的输入字段。我已将自动完成设置为仅预测城市,但我正在努力寻找一种简单的方法来获取所选城市的唯一 place_id。我不想将它与谷歌地图一起使用。我需要它只是为了识别所选城市的独特值(value)..提前致谢..
这是我的 JS:
<script src="maps.googleapis.com/maps/api/js?libraries=places"; type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var options = { types: ['(cities)'] };
var input = document.getElementById('searchCity');
var autocomplete = new google.maps.places.Autocomplete(input,options);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
这是我的 PHP:
<form method="GET" action=<?php echo $_SERVER['PHP_SELF'];?>>
<input id="searchCity" type="text" size="50"
placeholder="Enter a City" autocomplete="on" name="city">
<br>
<?php if (!empty($_GET['city']) ) {
echo $_GET['city'];
} else {
echo "not set";
}
unset($_GET['city']); ?>
</form>
<!-- Here I would like to show the place_id of the selected city-->
</div>
最佳答案
您不需要 PHP 来显示地点详细信息。您只需要 place_changed
的 Javascript 事件处理程序。
例如将此代码添加到您的initialize
函数中:
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
var form = input.parentElement;
form.appendChild(document.createTextNode("Place ID is " + place.place_id));
});
这些来自 Google 文档的示例包含使用 place_changed
事件的完整示例。它们值得一看:
关于google-places-api - 使用谷歌地点自动完成功能获取城市的 place_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717512/