我使用谷歌地图方向服务创建了一个票价计算器,以计算在“发件人”文本框中输入的2个位置之间的距离。我还指定了自动完成API以获取位置列表,以便在键入时自动完成。这是完美的工作,但现在需求发生了变化。我想确定用户是否已选择或输入任何机场作为From或To位置。并基于此我想计算票价。我还有机场名称列表,所以我必须查看输入的地址是否来自列表。我怎么能这样做?
答案 0 :(得分:-1)
您可以获取地点详细信息并检查类型字段是否包含" airport"。添加侦听器以拦截自动完成的place_changed
事件,并分析PlaceResult对象的类型字段。您可以使用Array.prototype.includes()功能来实现此目的。
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert("No details available for input: '" + place.name + "'");
return;
}
if (place.types.includes("airport")) {
//Implement your logic here
}
});
您可以在官方文档中查看地方自动填充的示例。 E.g。
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
请注意,有时用户可以选择看起来像机场名称的东西,但实际上是不同的东西,例如与机场共享其名称的地铁站。在这种情况下,您应该应用此答案中描述的解决方法:
https://stackoverflow.com/a/44928956/5140781
我希望这有帮助!