google-places-api - 使用谷歌地点自动完成功能获取城市的 place_id

标签 google-places-api

我正在使用带有谷歌地点自动完成功能的输入字段。我已将自动完成设置为仅预测城市,但我正在努力寻找一种简单的方法来获取所选城市的唯一 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/

相关文章:

google-maps - Google Places/Maps API - 快速事实文本?

javascript - Google map 地点 API : TypeError: autocomplete is undefined

android - 将 Places Autocomplete API 限制为特定国家/地区 android 的城市

android - 搜索给定城市名称中的所有地点

javascript - Google Places API - 地点详细信息请求

java - 更改 Google Place Picker Appbar 文本颜色

Android Google Places 自动完成 api 边界不起作用

javascript - 返回我之前指定的 Google map 位置列表

操作栏中的 Android 搜索按钮和搜索字段

.net - Google Place API - 如何检索营业时间