📅  最后修改于: 2023-12-03 14:57:45.881000             🧑  作者: Mango
当用户在Google搜索框中开始输入城市名时,Google会自动提供该城市的相关预测。这种功能不仅在Google搜索中可以使用,还可以在Web应用程序中实现。而实现这种预测功能的技术就称为“地方自动完成”。
本文将介绍如何使用Javascript和Google Places API创建一个简单的“城市自动完成”应用程序。
首先,您需要设置Google Places API。您需要在Google Cloud控制台中创建一个新的项目并启用Google Places API。如果您不知道如何执行此操作,请查看 Google Places API官方文档。
在启用API后,您需要获取API密钥。您需要在应用程序中使用此密钥以进行身份验证。
用以下HTML模板创建基本结构:
<!DOCTYPE html>
<html>
<head>
<title>City Autocomplete</title>
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&libraries=places"></script>
</head>
<body>
<input type="text" id="cityInput" placeholder="Enter a city name">
<script src="app.js"></script>
</body>
</html>
请记住将 API_KEY
替换为您的Google Places API密钥。
在这个简单的HTML文件中,我们创建了一个基本的输入字段,该字段将作为城市自动完成的文本字段。我们将稍后在Javascript文件中将其链接到Google Places库。
现在,让我们添加一些JavaScript代码以实现我们的城市自动完成。首先,我们需要在应用程序中引入Google Places API库。我们可以通过以下方式执行此操作:
var input = document.getElementById('cityInput');
var autocomplete = new google.maps.places.Autocomplete(input);
此代码按照以下步骤运行:
input
的变量中。google.maps.places.Autocomplete
函数创建一个新的自动完成对象,并将其存储在名为 autocomplete
的变量中。现在,我们需要从 autocomplete
对象中获取用户选择的城市名称。为此,我们将添加以下代码:
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert("No details available for input: '" + place.name + "'");
return;
}
console.log(place.name);
});
此代码按照以下步骤运行:
autocomplete
对象添加一个事件监听器,该监听器将在用户选择一个城市时触发。autocomplete
对象获取已选择的地点,并将其存储在名为 place
的变量中。console.log()
函数记录所选城市的名称。下面是 app.js
文件的完整代码:
var input = document.getElementById('cityInput');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert("No details available for input: '" + place.name + "'");
return;
}
console.log(place.name);
});
在本文中,我们学习了如何使用Javascript和Google Places API创建一个城市自动完成应用程序。通过按照我们提供的步骤操作,您可以在自己的网站或应用程序中实现此功能,以帮助用户更轻松地查找城市。